예제 #1
0
파일: semantics.py 프로젝트: vmuriart/grako
 def pattern(self, ast, *args):
     pattern = ast
     try:
         re.compile(pattern, RE_FLAGS)
     except (TypeError, re.error) as e:
         raise FailedSemantics('regexp error: ' + str(e))
     return grammars.Pattern(pattern)
예제 #2
0
파일: semantics.py 프로젝트: vmuriart/grako
 def any(self, ast):
     return model.Pattern('\w+|\S+')
예제 #3
0
파일: semantics.py 프로젝트: vmuriart/grako
 def newrange(self, ast):
     return model.Pattern('[%s]' % re.escape(ast))
예제 #4
0
파일: semantics.py 프로젝트: vmuriart/grako
 def range(self, ast):
     return model.Pattern('[%s-%s]' % (ast.first, ast.last))
예제 #5
0
파일: semantics.py 프로젝트: vmuriart/grako
 def negative(self, ast):
     neg = model.NegativeLookahead(ast)
     any = model.Pattern('.')
     return model.Sequence(AST(sequence=[neg, any]))
예제 #6
0
 def negative(self, ast):
     neg = model.LookaheadNot(ast)
     any = model.Pattern('.')
     return model.Sequence([neg, any])
예제 #7
0
 def pattern(self, ast, *args):
     return grammars.Pattern(ast)
예제 #8
0
 def newranges(self, ast):
     pattern = ''.join(ast)
     re.compile(pattern)
     return model.Pattern(pattern)
예제 #9
0
 def regexp(self, ast):
     pattern = ''.join(ast)
     re.compile(pattern)
     return model.Pattern(pattern)