yml2/yml2.py
changeset 57 2f4ad3800a3f
parent 52 b4a9a3122abb
child 58 a218553807ab
--- a/yml2/yml2.py	Tue Sep 04 17:09:43 2018 +0200
+++ b/yml2/yml2.py	Wed Feb 27 14:43:35 2019 +0100
@@ -1,4 +1,4 @@
-# YML 2.5.8 language definition
+# YML 2.5.10 language definition
 
 # written by VB.
 
@@ -51,7 +51,7 @@
 xmlSymbol = r(_xmlSymbol)
 aliasSymbol = r(ur"-|(" + _xmlSymbol + ur")")
 
-literal = [r(r'""".*?"""', re.S), r(r"'''.*?'''", re.S), r(r"""-?\d+\.\d*|-?\.\d+|-?\d+|".*?"|'.*?'""")]
+literal = [r(r'""".*?"""', re.S), r(r"'''.*?'''", re.S), r(r"""0x[a-f0-9]+|-?\d+\.\d*|-?\.\d+|-?\d+|".*?"|'.*?'""")]
 filename = [("'", r(r"[^']*"), "'"), ('"', r(r'[^"]*'), '"'), r(r"[^\s;]+")]
 ws = r(r"\s+", re.U)
 
@@ -77,7 +77,7 @@
 def constant():     return 0, keyword("define"), [pointer, symbol], "=", literal, 0, [";", "."]
 def in_ns():        return keyword("in"), xmlSymbol, [_decl, ("{", -2, _decl, "}")]
 _decl = keyword("decl"), listing(decl), [";", "."]
-def textsection():  return r(r'(\|\|(\>*).*?\|\|(\>*))', re.S)
+def textsection():  return r(r'(\|\|(\>*)(.*?)\|\|(\>*))\s*$', re.S | re.M)
 def textsectionu(): return r(r'(\>\>.*?\>\>)', re.S)
 def include():      return keyword("include"), 0, reverse, 0, [ktext, kxml], filename, 0, [";", "."]
 def func():         return _func, 0, content