def EOL(): return _(r'$') ########### ## ## DATE ## ########### def month(): return _(r'(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\w*') # Month abreviations: Jan. Feb. Mar. Apr. May June July Aug. Sep. Oct. Nov. Dec.
def double_quoted_string(): """Double quoted string literal.""" return ( '"', arpeggio.ZeroOrMore([ r'\\', r'\"', _('[^"]') ]), '"', )
def single_quoted_string(): """Single quoted string literal.""" return ( "'", arpeggio.ZeroOrMore([ r"\\", r"\'", _("[^']") ]), "'", )
def number_element(): """Any word that can be part of a number.""" return [ "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty", "thirthy", "forty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninety", "hundred", "thousand", "million", "billion", "trillion", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", _("[0-9]")]
def comment_block(): return _(r'/\*(.|\n)*?\*/')
def string_value(): return [_(r"'((\\')|[^'])*'"), _(r'"((\\")|[^"])*"')]
def field_content_quoted(): return _(r'(("")|([^"]))+') def csvfile(): return OneOrMore([record, '\n']), EOF
def space_sequence(): return _(r'\s+')
def identifier(): return _(r"[a-zA-Z_]([a-zA-Z_]|[0-9])*") #def literal(): return [_(r"\'(\\\'|[^\'])*\'"),_(r'"[^"]*"')] def literal(): return _(r'(\'(\\\'|[^\'])*\')|("[^"]*")')
def ordinal(): return _('\d+(st|nd|rd|th)')
def _int(): return _(r'[-+]?[0-9]+\b')
def number(): return _(r"[0-9]+")
def operation(): return _(r"\+|-")
def rrel_id(): return _(r'[^\d\W]\w*\b') # from lang.py
def rrel_expression(): return Optional(_(r'\+[mp]+:')), rrel_sequence
def rrel_dots(): return _(r'\.+')
def fourth(): return _(r'\d+') first_sar = None
def number(): return _(r'\d*\.\d*|\d+') def factor(): return Optional(["+","-"]), [number,
def header(): return _(r'[^\n]*')
def ident(): return _(r'[^\d\W]\w*\b')
def pollNumber(): return _(r'\d') def pollString(): return '"', None, '"'
def synset(): return _(r'\d{8}\-[v|r|n|a]') def node(): return [q_id, statement, synset]
def number(): return _(r'\d*\.\d*|\d+')
def integer(): return _("\d+")
def number(): return _(r'\d*\.\d*|\d+') def factor(): return [number, ("(", expression, ")")]
def comment(): return "//", _(".*\n") # ------------------------------------------------------------------ # PEG Semantic Actions class PEGSemanticAction(SemanticAction):
def str_match(): return [("'", _(r"((\\')|[^'])*"),"'"),\ ('"', _(r'((\\")|[^"])*'),'"')] def re_match():
def fourth(): return _(r'\d+')
def ident(): return _(r'\w+')
# Comments def comment(): return [comment_line, comment_block] def comment_line(): return _(r'//.*?$') def comment_block(): return _(r'/\*(.|\n)*?\*/') # Special rules - primitive types ID = _(r'[^\d\W]\w*\b', rule_name='ID', root=True) BOOL = _(r'(True|true|False|false|0|1)\b', rule_name='BOOL', root=True) INT = _(r'[-+]?[0-9]+\b', rule_name='INT', root=True) FLOAT = _(r'[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\b', 'FLOAT', root=True) STRING = _(r'("(\\"|[^"])*")|(\'(\\\'|[^\'])*\')', 'STRING', root=True) NUMBER = OrderedChoice(nodes=[FLOAT, INT], rule_name='NUMBER', root=True) BASETYPE = OrderedChoice(nodes=[NUMBER, BOOL, ID, STRING], rule_name='BASETYPE', root=True) BASE_TYPE_RULES = { rule.rule_name: rule for rule in [ID, BOOL, INT, FLOAT, STRING, NUMBER, BASETYPE] } BASE_TYPE_NAMES = BASE_TYPE_RULES.keys()
def number(): return _(r'\d*\.\d*|\d+') def jsonString(): return _('[^"]*')
def re_match(): return "/", _(r"((\\/)|[^/])*"), "/"
def jsonString(): return _('[^"]*') def jsonLine(): return [jsonString, number, jsonLine], '"'
def integer(): return _(r'[-+]?[0-9]+')
def str_match(): return _(r"""(?s)('[^'\\]*(?:\\.[^'\\]*)*')|""" r"""("[^"\\]*(?:\\.[^"\\]*)*")""")
def comment_line(): return _(r'//.*?$')
def comment(): return "//", _(".*\n")
def grammar_to_import(): return _(r'(\w|\.)+')
def regex(): return [("r'", _(r"""[^'\\]*(?:\\.[^'\\]*)*"""), "'"), ('r"', _(r"""[^"\\]*(?:\\.[^"\\]*)*"""), '"')]
def GUID(): return 'GUID', _(r'[a-f0-9]*-[a-f0-9]*-[a-f0-9]*-[a-f0-9]*-[a-f0-9]*')
def rule_name(): return _(r"[a-zA-Z_]([a-zA-Z_]|[0-9])*")
def _string(): return _(r'("(\\"|[^"])*")|(\'(\\\'|[^\'])*\')')
def fourth(): return _(r"\d+")
def _float(): return _(r'[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\b')
def comment_entry(): return "@comment", "{", _(r'[^}]*'), "}" def bibentry(): return bibtype, "{", bibkey, ",", field, ZeroOrMore(",", field), "}"
def numerical_id(): return _(r'\d+') def q_id(): return "Q", numerical_id
def fieldname(): return _(r'[-\w]+') def comment(): return _(r'[^@]+')
def punct(): return _("[.,;:]")
def comment(): return _(r'[^@]+') def bibtype(): return _(r'@\w+')
def regex(): return "r", "'", _(r"(\\\'|[^\'])*"),"'" def identifier(): return _(r"[a-zA-Z_]([a-zA-Z_]|[0-9])*")
def bibtype(): return _(r'@\w+') def bibkey(): return _(r'[^\s,]+')
def literal(): return _(r'(\'(\\\'|[^\'])*\')|("[^"]*")') def LEFT_ARROW(): return "<-"
def bibkey(): return _(r'[^\s,]+') def fieldvalue_quoted_content(): return _(r'((\\")|[^"])*')
def space(): return _(r'\s')
def fieldvalue_quoted_content(): return _(r'((\\")|[^"])*') def fieldvalue_braced_content(): return Combine(
def not_space(): return _(r'[^\s]')
def fieldvalue_part(): return _(r'((\\")|[^{}])+') def fieldvalue_inner(): return "{", fieldvalue_braced_content, "}"