Python pyparsing.replaceWith() Examples
The following are 11
code examples of pyparsing.replaceWith().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
pyparsing
, or try the search function
.
Example #1
Source File: decorator.py From CWR-DataApi with MIT License | 6 votes |
def _wrap_as_optional_numeric(self, field, name, columns): # Regular expression accepting as many whitespaces as columns field_empty = pp.Regex('[0]{' + str(columns) + '}') resultsName = field.resultsName field_empty.setName(name) # Whitespaces are not removed field_empty.leaveWhitespace() # None is returned by this rule field_empty.setParseAction(pp.replaceWith(None)) field_empty = field_empty.setResultsName(field.resultsName) field = field | field_empty field.setName(name) field = field.setResultsName(resultsName) field.leaveWhitespace() return field
Example #2
Source File: parser.py From mergify-engine with Apache License 2.0 | 5 votes |
def _match_boolean(literal): return ( literal + pyparsing.Empty().setParseAction(pyparsing.replaceWith("=")) + pyparsing.Empty().setParseAction(pyparsing.replaceWith(True)) )
Example #3
Source File: parser.py From pyprover with Apache License 2.0 | 5 votes |
def fixto(output, item): """Forces an item to result in a specific output.""" return _coconut_tail_call(attach, replaceWith(output), item)
Example #4
Source File: delta_time.py From pyparsing with MIT License | 5 votes |
def make_integer_word_expr(int_name, int_value): return pp.CaselessKeyword(int_name).addParseAction(pp.replaceWith(int_value))
Example #5
Source File: delta_time.py From pyparsing with MIT License | 5 votes |
def plural(s): return CK(s) | CK(s + "s").addParseAction(pp.replaceWith(s))
Example #6
Source File: wordsToNum.py From pyparsing with MIT License | 5 votes |
def makeLit(s, val): ret = pp.CaselessLiteral(s) return ret.setParseAction(pp.replaceWith(val))
Example #7
Source File: jsonParser.py From pyparsing with MIT License | 5 votes |
def make_keyword(kwd_str, kwd_value): return pp.Keyword(kwd_str).setParseAction(pp.replaceWith(kwd_value))
Example #8
Source File: romanNumerals.py From pyparsing with MIT License | 5 votes |
def romanNumeralLiteral(numeralString, value): return pp.Literal(numeralString).setParseAction(pp.replaceWith(value))
Example #9
Source File: decorator.py From CWR-DataApi with MIT License | 5 votes |
def _wrap_as_optional(self, field, name, columns): """ Adds a wrapper rule to the field to accept empty strings. This empty string should be of the same size as the columns parameter. One smaller or bigger will be rejected. This wrapper will return None if the field is empty. :param field: the field to wrap :param name: name of the field :param columns: number of columns it takes :return: the field with an additional rule to allow empty strings """ # Regular expression accepting as many whitespaces as columns field_empty = pp.Regex('[ ]{' + str(columns) + '}') resultsName = field.resultsName field_empty.setName(name) # Whitespaces are not removed field_empty.leaveWhitespace() # None is returned by this rule field_empty.setParseAction(pp.replaceWith(None)) field_empty = field_empty.setResultsName(resultsName) field = field | field_empty field.setName(name) field = field.setResultsName(resultsName) field.leaveWhitespace() return field
Example #10
Source File: special.py From CWR-DataApi with MIT License | 5 votes |
def audio_visual_key(name=None): """ Creates the grammar for an Audio Visual Key code. This is a variation on the ISAN (International Standard Audiovisual Number) :param name: name for the field :return: grammar for an ISRC field """ if name is None: name = 'AVI Field' society_code = basic.numeric(3) society_code = society_code.setName('Society Code') \ .setResultsName('society_code') av_number = basic.alphanum(15, extended=True, isLast=True) field_empty = pp.Regex('[ ]{15}') field_empty.setParseAction(pp.replaceWith('')) av_number = av_number | field_empty av_number = av_number.setName('Audio-Visual Number') \ .setResultsName('av_number') field = pp.Group(society_code + pp.Optional(av_number)) field.setParseAction(lambda v: _to_avi(v[0])) field = field.setName(name) return field.setResultsName('audio_visual_key')
Example #11
Source File: jsLiteralParse.py From ReadableWebProxy with BSD 3-Clause "New" or "Revised" License | 4 votes |
def jsParse(inStr): # This disaster is a context-free grammar parser for parsing javascript object literals. # It needs to be able to handle a lot of the definitional messes you find in in-the-wild # javascript object literals. # Unfortunately, Javascript is /way/ more tolerant then JSON when it comes to object literals # so we can't just parse objects using python's `json` library. TRUE = pp.Keyword("true").setParseAction( pp.replaceWith(True) ) FALSE = pp.Keyword("false").setParseAction( pp.replaceWith(False) ) NULL = pp.Keyword("null").setParseAction( pp.replaceWith(None) ) jsonString = pp.quotedString.setParseAction( pp.removeQuotes ) jsonNumber = pp.Combine( pp.Optional('-') + ( '0' | pp.Word('123456789',pp.nums) ) + pp.Optional( '.' + pp.Word(pp.nums) ) + pp.Optional( pp.Word('eE',exact=1) + pp.Word(pp.nums+'+-',pp.nums) ) ) jsonObject = pp.Forward() jsonValue = pp.Forward() jsonDict = pp.Forward() jsonArray = pp.Forward() jsonElements = pp.Forward() rawText = pp.Regex('[a-zA-Z_$][0-9a-zA-Z_$]*') commaToNull = pp.Word(',,', exact=1).setParseAction(pp.replaceWith(None)) jsonElements << pp.ZeroOrMore(commaToNull) + pp.Optional(jsonObject) + pp.ZeroOrMore((pp.Suppress(',') + jsonObject) | commaToNull) jsonValue << ( jsonString | jsonNumber | TRUE | FALSE | NULL ) dictMembers = pp.delimitedList( pp.Group( (rawText | jsonString) + pp.Suppress(':') + (jsonValue | jsonDict | jsonArray))) jsonDict << ( pp.Dict( pp.Suppress('{') + pp.Optional(dictMembers) + pp.ZeroOrMore(pp.Suppress(',')) + pp.Suppress('}') ) ) jsonArray << ( pp.Group(pp.Suppress('[') + pp.Optional(jsonElements) + pp.Suppress(']') ) ) jsonObject << (jsonValue | jsonDict | jsonArray) jsonComment = pp.cppStyleComment jsonObject.ignore( jsonComment ) def convertDict(s, l, toks): return dict(toks.asList()) def convertNumbers(s,l,toks): n = toks[0] try: return int(n) except ValueError: return float(n) jsonNumber.setParseAction(convertNumbers) jsonDict.setParseAction(convertDict) # jsonObject.setDebug() jsonObject.parseString('"inStr"').pop() return jsonObject.parseString(inStr).pop() # Stolen from http://stackoverflow.com/a/12017573/268006