yml2.py
changeset 31 d3dddb80d1f5
parent 28 e9a51b1d5587
equal deleted inserted replaced
30:a1ecf17c60eb 31:d3dddb80d1f5
     1 # YML 2.5.10 language definition
     1 # YML 2.6.0 language definition
     2 
     2 
     3 # written by VB.
     3 # written by VB.
     4 
     4 
     5 import re
     5 import re
     6 from pyPEG import keyword, _and, _not
     6 from pyPEG import keyword, _and, _not
    42 pointer = r(r"\*" + _symbol, re.U)
    42 pointer = r(r"\*" + _symbol, re.U)
    43 ppointer = r(r"\*\*" + _symbol, re.U)
    43 ppointer = r(r"\*\*" + _symbol, re.U)
    44 macro = r(r"\%" + _symbol, re.U)
    44 macro = r(r"\%" + _symbol, re.U)
    45 reference = r(r"\&" + _symbol, re.U)
    45 reference = r(r"\&" + _symbol, re.U)
    46 
    46 
    47 NameStartChar = ur''':|[A-Z]|_|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]'''
    47 NameStartChar = r''':|[A-Z]|_|[a-z]|[\u00C0-\u00D6]|[\u00D8-\u00F6]|[\u00F8-\u02FF]|[\u0370-\u037D]|[\u037F-\u1FFF]|[\u200C-\u200D]|[\u2070-\u218F]|[\u2C00-\u2FEF]|[\u3001-\uD7FF]|[\uF900-\uFDCF]|[\uFDF0-\uFFFD]'''
    48 NameChar = NameStartChar + ur'''|-|\.|[0-9]|\u00B7|[\u0300-\u036F]|[\u203F-\u2040]'''
    48 NameChar = NameStartChar + r'''|-|\.|[0-9]|\u00B7|[\u0300-\u036F]|[\u203F-\u2040]'''
    49 
    49 
    50 _xmlSymbol = u"(" + NameStartChar + u")(" + NameChar + u")*"
    50 _xmlSymbol = "(" + NameStartChar + ")(" + NameChar + ")*"
    51 xmlSymbol = r(_xmlSymbol)
    51 xmlSymbol = r(_xmlSymbol)
    52 aliasSymbol = r(ur"-|(" + _xmlSymbol + ur")")
    52 aliasSymbol = r(r"-|(" + _xmlSymbol + r")")
    53 
    53 
    54 literal = [r(r'""".*?"""', re.S), r(r"'''.*?'''", re.S), r(r"""0x[a-f0-9]+|-?\d+\.\d*|-?\.\d+|-?\d+|".*?"|'.*?'""")]
    54 literal = [r(r'""".*?"""', re.S), r(r"'''.*?'''", re.S), r(r"""0x[a-f0-9]+|-?\d+\.\d*|-?\.\d+|-?\d+|".*?"|'.*?'""")]
    55 filename = [("'", r(r"[^']*"), "'"), ('"', r(r'[^"]*'), '"'), r(r"[^\s;]+")]
    55 filename = [("'", r(r"[^']*"), "'"), ('"', r(r'[^"]*'), '"'), r(r"[^\s;]+")]
    56 ws = r(r"\s+", re.U)
    56 ws = r(r"\s+", re.U)
    57 
    57