def handleMacro(toks): macroChar = toks[0][1] if macroChar == "d": return CharacterRangeEmitter("0123456789") elif macroChar == "w": return CharacterRangeEmitter(srange("[A-Za-z0-9_]")) elif macroChar == "s": return LiteralEmitter(" ") else: raise ParseFatalException("",0,"unsupported macro character (" + macroChar + ")")
def handleMacro(toks): macroChar = toks[0][1] if macroChar == "d": return CharacterRangeEmitter("0123456789") elif macroChar == "w": return CharacterRangeEmitter(srange("[A-Za-z0-9_]")) elif macroChar == "s": return LiteralEmitter(" ") else: raise ParseFatalException( "", 0, "unsupported macro character (" + macroChar + ")")
# vim:fileencoding=utf-8 # # greetingInKorean.py # # Demonstration of the parsing module, on the prototypical "Hello, World!" example # from pyparsingOD import Word, srange koreanChars = srange(r"[\0xac00-\0xd7a3]") koreanWord = Word(koreanChars,min=2) # define grammar greet = koreanWord + "," + koreanWord + "!" # input string hello = '\uc548\ub155, \uc5ec\ub7ec\ubd84!' #"Hello, World!" in Korean # parse input string print(greet.parseString( hello ))
def setBodyLength(tokens): strBody << Word(srange(r'[\0x00-\0xffff]'), exact=int(tokens[0])) return ""
def handleRange(toks): return CharacterRangeEmitter(srange(toks[0]))