backend.py
changeset 29 6a8a7951d8e6
parent 22 3a2bd70c01df
child 31 d3dddb80d1f5
equal deleted inserted replaced
28:e9a51b1d5587 29:6a8a7951d8e6
     1 # 2.5.8 backend
     1 # 2.5.10 backend
     2 
     2 
     3 # written by VB.
     3 # written by VB.
     4 
     4 
     5 import re, codecs
     5 import re, codecs
     6 import fileinput
     6 import fileinput
     7 import sys, traceback, exceptions, os
     7 import sys, traceback, exceptions, os
     8 from xml.sax.saxutils import escape, quoteattr
     8 from xml.sax.saxutils import escape, quoteattr
     9 from copy import deepcopy
     9 from copy import copy, deepcopy
    10 from glob import glob
    10 from glob import glob
    11 from pyPEG import code, parse, parseLine, u, Symbol
    11 from pyPEG import code, parse, parseLine, u, Symbol
    12 from yml2 import ymlCStyle, comment, _inner
    12 from yml2 import ymlCStyle, comment, _inner
    13 
    13 
    14 ymlFunc, pointers, pythonFunc = {}, {}, {}
    14 ymlFunc, pointers, pythonFunc = {}, {}, {}
   493                 avoidTag = True
   493                 avoidTag = True
   494                 name = name[1:]
   494                 name = name[1:]
   495 
   495 
   496         try:
   496         try:
   497             ymlFunc[name]
   497             ymlFunc[name]
   498         except:
   498         except KeyError:
   499             try:
   499             try:
   500                 ymlFunc["_"]
   500                 if ymlFunc["_"].alias != u"-":
   501                 return codegen(('func', ['_', ('content', [('funclist', [obj])])]))
   501                     return codegen(('func', ['_', ('content', [('funclist', [obj])])]))
   502             except:
   502                 else:
       
   503                     ymlFunc[name] = copy(ymlFunc["_"])
       
   504                     ymlFunc[name].alias = name.replace("_", "-")
       
   505                     return codegen(obj)
       
   506             except KeyError:
   503                 ymlFunc[name] = YF(name)
   507                 ymlFunc[name] = YF(name)
   504         
   508         
   505         if ymlFunc[name].alias == "-": avoidTag = True
   509         if ymlFunc[name].alias == "-": avoidTag = True
   506 
   510 
   507         to_add = []
   511         to_add = []