本文整理汇总了Python中pyparsing.Forward.setResultsName方法的典型用法代码示例。如果您正苦于以下问题:Python Forward.setResultsName方法的具体用法?Python Forward.setResultsName怎么用?Python Forward.setResultsName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyparsing.Forward
的用法示例。
在下文中一共展示了Forward.setResultsName方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: parseTypes
# 需要导入模块: from pyparsing import Forward [as 别名]
# 或者: from pyparsing.Forward import setResultsName [as 别名]
def parseTypes(path):
msgs = set()
types = {}
for line in lineGen(path):
number = Word(nums)
word = Word(alphanums + "-_")
wordList = Forward()
wordList = word + ZeroOrMore(',' + word)
par = (Literal('NetworkPartition').setResultsName('type') +\
'(' + Literal('Set') + '(' +\
wordList.setResultsName('p1') + ')' + ',' +\
Literal('Set') + '(' +\
wordList.setResultsName('p2') + ')' + \
')')
subType = (word + Optional(nestedExpr('(', ')'))).setResultsName('msg')
msg = (Literal('MsgEvent').setResultsName('type') +\
'(' + word.setResultsName('src') + ',' +\
word.setResultsName('dst') + ',' +\
subType + ')')
event = Word( nums ) +\
Literal('Unique') + "(" + (msg | par) + ',' +\
number.setResultsName('uid') + ')'
result = event.parseString(line)
key = result.uid
if result.type == 'MsgEvent':
msg = list2tuple( result.msg.asList() )
value = (result.type, result.src, result.dst, msg)
msgs.add(msg)
elif result.type == 'NetworkPartition':
value = (result.type, result.p1, result.p2)
types[key] = value
return types
示例2: parser
# 需要导入模块: from pyparsing import Forward [as 别名]
# 或者: from pyparsing.Forward import setResultsName [as 别名]
def parser(text):
"""
str := \w+
str := '\w+'
exp := Var=str
exp := exp & exp
exp := exp ^ exp
"""
# grammar
#g_string = "'"+Word(alphas)+"'" | Word(alphas)
g_quote = Literal("'").suppress()
g_text = Regex("[\w\s\:\#\.]+").setResultsName("text")
g_string = Optional(g_quote) + g_text + Optional(g_quote)
g_equ = Literal("!=").setResultsName("connector") | Literal("=").setResultsName("connector")
g_amp = Literal("&").setResultsName("connector")
g_hat = Literal("^").setResultsName("connector")
g_or = Literal("|").suppress()
g_seq = Literal("->").setResultsName("connector")
g_hash = Literal("#").setResultsName("hash")
g_left_brack = Literal("[").suppress()
g_right_brack = Literal("]").suppress()
g_vals = Forward()
g_vals << g_string + ZeroOrMore(Group(g_or + g_vals).setResultsName("or_group"))
# working
"""
exp_basic = Group(Optional(g_hash) + g_string).setResultsName("left") + g_equ + Group(g_vals).setResultsName("right")
exp = Group(exp_basic)
exp = exp.setResultsName("left") + g_amp + exp.setResultsName("right") | \
g_left_brack + exp.setResultsName("left") + g_hat + exp.setResultsName("right") + g_right_brack | \
g_left_brack + exp.setResultsName("left") + g_seq + exp.setResultsName("right") + g_right_brack | \
exp_basic
"""
# recursion
simpleq = Forward()
complexq = Forward()
exp = (simpleq | complexq).setResultsName("exp")
exp_basic = Group(Group(Optional(g_hash) + g_string).setResultsName("left") + g_equ + Group(g_vals).setResultsName("right"))
simpleq << (Group(exp_basic.setResultsName("left") + g_amp + simpleq.setResultsName("right")) | exp_basic)
complexq << ( Group(g_left_brack + exp.setResultsName("left") + g_hat + exp.setResultsName("right") + g_right_brack) | \
Group(g_left_brack + exp.setResultsName("left") + g_seq + exp.setResultsName("right") + g_right_brack) )
return exp.parseString(text)
示例3: parser
# 需要导入模块: from pyparsing import Forward [as 别名]
# 或者: from pyparsing.Forward import setResultsName [as 别名]
def parser():
global _parser
if _parser is None:
ParserElement.setDefaultWhitespaceChars("")
lbrack = Literal("[")
rbrack = Literal("]")
lbrace = Literal("{")
rbrace = Literal("}")
lparen = Literal("(")
rparen = Literal(")")
reMacro = Suppress("\\") + oneOf(list("dwsZ"))
escapedChar = ~reMacro + Combine("\\" + oneOf(list(printables)))
reLiteralChar = "".join(c for c in string.printable if c not in r"\[]{}().*?+|")
reRange = Combine(lbrack.suppress() + SkipTo(rbrack,ignore=escapedChar) + rbrack.suppress())
reLiteral = ( escapedChar | oneOf(list(reLiteralChar)) )
reDot = Literal(".")
repetition = (
( lbrace + Word(nums).setResultsName("count") + rbrace ) |
( lbrace + Word(nums).setResultsName("minCount")+","+ Word(nums).setResultsName("maxCount") + rbrace ) |
oneOf(list("*+?"))
)
reExpr = Forward()
reGroup = (lparen.suppress() +
Optional(Literal("?").suppress() + oneOf(list(":P"))).setResultsName("option") +
reExpr.setResultsName("expr") +
rparen.suppress())
reTerm = ( reLiteral | reRange | reMacro | reDot | reGroup )
reExpr << operatorPrecedence( reTerm,
[
(repetition, 1, opAssoc.LEFT, create(Repetition)),
(None, 2, opAssoc.LEFT, create(Sequence)),
(Suppress('|'), 2, opAssoc.LEFT, create(Alternation)),
]
)
reGroup.setParseAction(create(Group))
reRange.setParseAction(create(Range))
reLiteral.setParseAction(create(Character))
reMacro.setParseAction(create(Macro))
reDot.setParseAction(create(Dot))
_parser = reExpr
return _parser
示例4: Group
# 需要导入模块: from pyparsing import Forward [as 别名]
# 或者: from pyparsing.Forward import setResultsName [as 别名]
trueOrFalse = trueToken | falseToken
facetOrderBy = hitsToken | valueToken
facetSpec = Group(columnName + ":" + "(" + trueOrFalse + "," + intNum + "," + intNum + "," + facetOrderBy + ")")
browseByClause = (browseByToken +
"(" + delimitedList(facetSpec).setResultsName("facet_specs") + ")")
groupByClause = (groupByToken +
columnName.setResultsName("groupby") +
Optional(topToken + intNum.setResultsName("max_per_group")))
selectStmt << (selectToken +
('*' | columnNameList).setResultsName("columns") +
fromToken +
ident.setResultsName("index") +
Optional((whereToken + whereExpression.setResultsName("where"))) +
ZeroOrMore(orderByClause |
limitClause |
browseByClause |
groupByClause
) +
Optional(";")
)
simpleSQL = selectStmt
# Define comment format, and ignore them
sqlComment = "--" + restOfLine
simpleSQL.ignore(sqlComment)
logger = logging.getLogger("sensei_client")
示例5: Optional
# 需要导入模块: from pyparsing import Forward [as 别名]
# 或者: from pyparsing.Forward import setResultsName [as 别名]
insert_stmt = INSERT + INTO + table_name + VALUES +LPAR + insert_values + RPAR
# Delete Statement
# ================
delete_stmt = (DELETE + FROM +table_name + Optional(where_clause))
# Update Statement
# ================
# <update> ::= UPDATE <table>
# SET <list-set-clause>
# [<where-clause>]
# <list-set-clause> ::= <set-clause> [, <set-clause>]*
# <set-clause> ::= <colname> = <update-source>
# <update-source> ::= <arith-expr>
update_source = arith_expr.setResultsName('update_source')
set_clause = Group(column_name + equal_op + update_source)
list_set_clauses = delimitedList(set_clause).setResultsName('list_set_clauses')
update_stmt = (UPDATE + table_name +
SET + list_set_clauses +
Optional(where_clause))
# Select Statement
# ================
# <select> ::= SELECT [DISTINCT] <select list>
# <from-clause>
# [<where-clause>]
# [<order-by-clause>]
#
# <select list> ::= <start> | <derived-col> [<comma> <derived-col>]*
# <derived-col> ::= <arith-expr> [AS <alias>]
示例6: Forward
# 需要导入模块: from pyparsing import Forward [as 别名]
# 或者: from pyparsing.Forward import setResultsName [as 别名]
(oneOf("* /"), 2, opAssoc.LEFT, FOLBinOp),
(oneOf("+ -"), 2, opAssoc.LEFT, FOLBinOp),
(oneOf("< <= > >= "), 2, opAssoc.LEFT, FOLBinOp),
],
)
# main parser for FOL formula
formula = Forward()
formula.ignore(comment)
forall_expression = Group(
forall.setResultsName("quantifier")
+ delimitedList(variable).setResultsName("vars")
+ colon
+ formula.setResultsName("args")
).setParseAction(FOLQuant)
exists_expression = Group(
exists.setResultsName("quantifier")
+ delimitedList(variable).setResultsName("vars")
+ colon
+ formula.setResultsName("args")
).setParseAction(FOLQuant)
operand = forall_expression | exists_expression | boolean | term
# specify the precedence -- highest precedence first, lowest last
operator_list = [(not_, 1, opAssoc.RIGHT, FOLUnOp)]
#
operator_list += [
(equals, 2, opAssoc.RIGHT, FOLBinOp),
示例7: parser
# 需要导入模块: from pyparsing import Forward [as 别名]
# 或者: from pyparsing.Forward import setResultsName [as 别名]
def parser(text):
var_any = Literal("_")
p = Regex("[\w:]+").setResultsName("text")
var_any = Regex("_") #handled by p anyway
attribute = Literal("@").suppress()
eq = Literal("=").suppress()
closure = (Literal("?") | Literal("*") | Literal("+")).setResultsName("closure")
test = Literal("^").setResultsName("modifier") + p | p + Literal("$").setResultsName("modifier") | p #| var_any
axis = (Literal("\\\\*") | \
Literal("\\\\") | \
Literal("\\") | \
Literal(".") | \
Literal("//*") | \
Literal("//") | \
Literal("/") | \
Literal("-->") | \
Literal("<--") | \
Literal("->") | \
Literal("<-") | \
Literal("==>") | \
Literal("<==") | \
Literal("=>") | \
Literal("<=")).setResultsName("connector")
g_left_brack = Literal("[").suppress()
g_right_brack = Literal("]").suppress()
# working
"""
abspath = Forward()
locstep = Forward()
node = test.setResultsName("node")
attr_test = Group(attribute.suppress() + node.setResultsName("attr") + eq.suppress() + node.setResultsName("attr_val")).setResultsName("attr_test")
predicate = (Group(Literal("[").suppress() + attr_test + Literal("]").suppress()).setResultsName("predicate") |\
Group(Literal("[").suppress() + abspath + Literal("]").suppress()).setResultsName("predicate"))
locstep << Group(axis.setResultsName("axis") + node + \
Optional(predicate + Optional(closure).setResultsName("closure"))).setResultsName("locstep")
abs2 = abspath
abspath << ( Group(locstep.setResultsName("left_step") + abs2).setResultsName("abspath") | \
locstep.setResultsName("right_step") )
# TODO
locpath = abspath
fexpr = locpath.setResultsName("exp")
"""
# clean
locpath = Forward()
steps = Forward()
fexpr = locpath.setResultsName("exp")
attr_test = Group(attribute + p.setResultsName("attr") + eq + p.setResultsName("attr_val"))
pred_opt = (fexpr.setResultsName("predicate") | attr_test.setResultsName("attr_test"))
# connector order handling is the same as EmuQL, but the root lacks a left, as it refers to context node
nodetest = Group(test + Optional(g_left_brack + pred_opt + g_right_brack + Optional(closure)))
steps << ( Group(nodetest("left") + axis + steps("right")) | \
Group(test + Optional(g_left_brack + pred_opt + g_right_brack + Optional(closure))))
locpath << Group(axis + steps.setResultsName("right"))
return fexpr.parseString(text)
示例8: CKeyword
# 需要导入模块: from pyparsing import Forward [as 别名]
# 或者: from pyparsing.Forward import setResultsName [as 别名]
)
where_clause = CKeyword('WHERE') + W + expression
group_by_clause = CKeyword('GROUP BY') + W + comma_list(expression) + \
Optional(W + CKeyword('HAVING') + W + expression)
order_by_clause = CKeyword('ORDER BY') + W + comma_list(ordering_term)
limit_clause = CKeyword('LIMIT') + W + expression + \
Optional(( (W + CKeyword('OFFSET') + W) | (OW + ',' + OW)) + expression)
# N.B. this doesn't account for compound operators (union, intersect...)
select << (\
CKeyword('SELECT') + W + Optional((CKeyword('DISTINCT') | CKeyword('ALL')) + W) + \
result_column_list.setResultsName("result_columns") + \
Optional(W + CKeyword('FROM') + W + join_source.setResultsName("join_source")) + \
Optional(W + where_clause).setResultsName("where") + \
Optional(W + group_by_clause).setResultsName("group_by") + \
Optional(W + order_by_clause).setResultsName("order_by") + \
Optional(W + limit_clause).setResultsName("limit")
)
SQL_select = pyparsing.StringStart() + OW + select + Optional(';') + pyparsing.StringEnd()
if __name__ == '__main__':
'''
def dbgStart(s, loc, grammar):
print 'Starting', s
def dbgSuccess(s, start, end, grammar, match): #
print 'Success', s
示例9: Forward
# 需要导入模块: from pyparsing import Forward [as 别名]
# 或者: from pyparsing.Forward import setResultsName [as 别名]
column_val = real_num | int_num | quotedString | column_idr
select_stmt = Forward()
where_expr = Forward()
where_cond = Group(
( column_idr.setResultsName('left_operand') +
binary_op.setResultsName('operator') +
column_val.setResultsName('right_operand')
) |
( column_idr.setResultsName('left_operand') +
in_ +
Suppress("(") + delimitedList( column_val ).setResultsName('right_operand') + Suppress(")")
).setResultsName('in_list_condition') |
( column_idr.setResultsName('left_operand') +
in_ +
Suppress("(") + select_stmt.setResultsName('right_operand') + Suppress(")")
).setResultsName('in_query_condition') |
( Suppress("(") + where_expr + Suppress(")") )
)
group_by_expr = Group(column_idr + ZeroOrMore( "," + column_idr ))
where_expr << where_cond + ZeroOrMore( (and_ | or_) + where_expr )
on_ = Keyword('on', caseless=True)
join = ((oneOf('left right') + 'join' ) | (Optional('inner') + 'join')
).setResultsName('join_type')
from_clause = table_idr.setResultsName('relation') + ZeroOrMore(Group(
join + table_idr.setResultsName('relation') + on_ + where_cond.setResultsName('join_conditions')
)).setResultsName('joins', listAllMatches=True)