Python pyparsing.QuotedString() Examples
The following are 6
code examples of pyparsing.QuotedString().
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: sql_graphviz.py From auptimizer with GNU General Public License v3.0 | 6 votes |
def grammar(): parenthesis = Forward() parenthesis <<= "(" + ZeroOrMore(CharsNotIn("()") | parenthesis) + ")" field_def = OneOrMore(Word(alphanums + "_\"'`:-") | parenthesis) field_def.setParseAction(field_act) tablename_def = ( Word(alphas + "`_") | QuotedString("\"") ) field_list_def = field_def + ZeroOrMore(Suppress(",") + field_def) field_list_def.setParseAction(field_list_act) create_table_def = Literal("CREATE") + "TABLE" + tablename_def.setResultsName("tableName") + "(" + field_list_def.setResultsName("fields") + ")" + ";" create_table_def.setParseAction(create_table_act) add_fkey_def = Literal("FOREIGN") + "KEY" + "(" + Word(alphanums).setResultsName("keyName") + ")" + "REFERENCES" + Word(alphanums).setResultsName("fkTable") + "(" + Word(alphanums + "_").setResultsName("fkCol") + ")" + Optional(Literal("DEFERRABLE")) + ";" add_fkey_def.setParseAction(add_fkey_act) other_statement_def = OneOrMore(CharsNotIn(";")) + ";" other_statement_def.setParseAction(other_statement_act) comment_def = "--" + ZeroOrMore(CharsNotIn("\n")) comment_def.setParseAction(other_statement_act) return OneOrMore(comment_def | create_table_def | add_fkey_def | other_statement_def)
Example #2
Source File: yara_support.py From rekall with GNU General Public License v2.0 | 5 votes |
def statement(): return pyparsing.Group( _IDENTIFIER.setResultsName("lhs") + _EQUALS + pyparsing.Combine( (anything_in_curly() | pyparsing.QuotedString("'", escChar="\\", unquoteResults=False) | pyparsing.QuotedString("\"", escChar="\\", unquoteResults=False) | _REGEX) + pyparsing.ZeroOrMore(_KEYWORD), adjacent=False, joinString=" ", ).setResultsName("rhs") )
Example #3
Source File: stringparser.py From bob with GNU General Public License v3.0 | 5 votes |
def __init__(self): # create parsing grammer sQStringLiteral = pyparsing.QuotedString("'") sQStringLiteral.setParseAction( lambda s, loc, toks: StringLiteral(s, loc, toks, False)) dQStringLiteral = pyparsing.QuotedString('"', '\\') dQStringLiteral.setParseAction( lambda s, loc, toks: StringLiteral(s, loc, toks, True)) stringLiteral = sQStringLiteral | dQStringLiteral functionCall = pyparsing.Forward() functionArg = stringLiteral | functionCall functionCall << pyparsing.Word(pyparsing.alphas, pyparsing.alphanums+'-') + \ pyparsing.Suppress('(') + \ pyparsing.Optional(functionArg + pyparsing.ZeroOrMore(pyparsing.Suppress(',') + functionArg)) + \ pyparsing.Suppress(')') functionCall.setParseAction( lambda s, loc, toks: FunctionCall(s, loc, toks)) predExpr = pyparsing.infixNotation( stringLiteral ^ functionCall , [ ('!', 1, pyparsing.opAssoc.RIGHT, lambda s, loc, toks: NotOperator(s, loc, toks)), ('<', 2, pyparsing.opAssoc.LEFT, infixBinaryOp(BinaryStrOperator)), ('<=', 2, pyparsing.opAssoc.LEFT, infixBinaryOp(BinaryStrOperator)), ('>', 2, pyparsing.opAssoc.LEFT, infixBinaryOp(BinaryStrOperator)), ('>=', 2, pyparsing.opAssoc.LEFT, infixBinaryOp(BinaryStrOperator)), ('==', 2, pyparsing.opAssoc.LEFT, infixBinaryOp(BinaryStrOperator)), ('!=', 2, pyparsing.opAssoc.LEFT, infixBinaryOp(BinaryStrOperator)), ('&&', 2, pyparsing.opAssoc.LEFT, infixBinaryOp(BinaryBoolOperator)), ('||', 2, pyparsing.opAssoc.LEFT, infixBinaryOp(BinaryBoolOperator)) ]) self.__ifgrammer = predExpr
Example #4
Source File: utilities.py From pyactr with GNU General Public License v3.0 | 5 votes |
def getchunk(): """ Using pyparsing, create chunk reader for chunk strings. """ slot = pp.Word("".join([pp.alphas, "_"]), "".join([pp.alphanums, "_"])) special_value = pp.Group(pp.oneOf([ACTRVARIABLE, "".join([ACTRNEG, ACTRVARIABLE]), ACTRNEG, VISIONGREATER, VISIONSMALLER, "".join([VISIONGREATER, ACTRVARIABLE]), "".join([VISIONSMALLER, ACTRVARIABLE])])\ + pp.Word("".join([pp.alphanums, "_", '"', "'"]))) strvalue = pp.QuotedString('"', unquoteResults=False) strvalue2 = pp.QuotedString("'", unquoteResults=False) varvalue = pp.Word("".join([pp.alphanums, "_"])) value = varvalue | special_value | strvalue | strvalue2 chunk_reader = pp.OneOrMore(pp.Group(slot + value)) return chunk_reader
Example #5
Source File: strutils.py From oslo.utils with Apache License 2.0 | 5 votes |
def split_by_commas(value): """Split values by commas and quotes according to api-wg :param value: value to be split .. versionadded:: 3.17 """ word = (pp.QuotedString(quoteChar='"', escChar='\\') | pp.Word(pp.printables, excludeChars='",')) grammar = pp.stringStart + pp.delimitedList(word) + pp.stringEnd try: return list(grammar.parseString(value)) except pp.ParseException: raise ValueError("Invalid value: %s" % value)
Example #6
Source File: shparsers.py From stash with MIT License | 4 votes |
def __init__(self, debug=False): self.debug = debug self.logger = logging.getLogger('StaSh.Parser') escaped = pp.Combine("\\" + pp.Word(pp.printables + ' ', exact=1)).setParseAction(self.escaped_action) escaped_oct = pp.Combine("\\" + pp.Word('01234567', max=3)).setParseAction(self.escaped_oct_action) escaped_hex = pp.Combine("\\x" + pp.Word('0123456789abcdefABCDEF', exact=2)).setParseAction(self.escaped_hex_action) # Some special uq_word is needed, e.g. &3 for file descriptor of Pythonista interactive prompt uq_word = (pp.Literal('&3') | pp.Word(_WORD_CHARS)).setParseAction(self.uq_word_action) bq_word = pp.QuotedString('`', escChar='\\', unquoteResults=False).setParseAction(self.bq_word_action) dq_word = pp.QuotedString('"', escChar='\\', unquoteResults=False).setParseAction(self.dq_word_action) sq_word = pp.QuotedString("'", escChar='\\', unquoteResults=False).setParseAction(self.sq_word_action) # The ^ operator means longest match (as opposed to | which means first match) word = pp.Combine(pp.OneOrMore(escaped ^ escaped_oct ^ escaped_hex ^ uq_word ^ bq_word ^ dq_word ^ sq_word))\ .setParseAction(self.word_action) identifier = pp.Word(pp.alphas + '_', pp.alphas + pp.nums + '_').setParseAction(self.identifier_action) assign_op = pp.Literal('=').setParseAction(self.assign_op_action) assignment_word = pp.Combine(identifier + assign_op + word).setParseAction(self.assignment_word_action) punctuator = pp.oneOf('; &').setParseAction(self.punctuator_action) pipe_op = pp.Literal('|').setParseAction(self.pipe_op_action) io_redirect_op = pp.oneOf('>> >').setParseAction(self.io_redirect_op_action) io_redirect = (io_redirect_op + word)('io_redirect') # The optional ' ' is a workaround to a possible bug in pyparsing. # The position of cmd_word after cmd_prefix is always reported 1 character ahead # of the correct value. cmd_prefix = (pp.OneOrMore(assignment_word) + pp.Optional(' '))('cmd_prefix') cmd_suffix = (pp.OneOrMore(word)('args') + pp.Optional(io_redirect)) ^ io_redirect modifier = pp.oneOf('! \\') cmd_word = (pp.Combine(pp.Optional(modifier) + word) ^ word)('cmd_word').setParseAction(self.cmd_word_action) simple_command = \ (cmd_prefix + pp.Optional(cmd_word) + pp.Optional(cmd_suffix)) \ | (cmd_word + pp.Optional(cmd_suffix)) simple_command = pp.Group(simple_command) pipe_sequence = simple_command + pp.ZeroOrMore(pipe_op + simple_command) pipe_sequence = pp.Group(pipe_sequence) complete_command = pp.Optional(pipe_sequence + pp.ZeroOrMore(punctuator + pipe_sequence) + pp.Optional(punctuator)) # --- special parser for inside double quotes uq_word_in_dq = pp.Word(pp.printables.replace('`', ' ').replace('\\', ''))\ .setParseAction(self.uq_word_action) word_in_dq = pp.Combine(pp.OneOrMore(escaped ^ escaped_oct ^ escaped_hex ^ bq_word ^ uq_word_in_dq)) # --- self.parser = complete_command.parseWithTabs().ignore(pp.pythonStyleComment) self.parser_within_dq = word_in_dq.leaveWhitespace() self.next_word_type = ShParser._NEXT_WORD_CMD self.tokens = [] self.parts = []