当前位置: 首页>>代码示例>>Python>>正文


Python pyparsing.Or方法代码示例

本文整理汇总了Python中pyparsing.Or方法的典型用法代码示例。如果您正苦于以下问题:Python pyparsing.Or方法的具体用法?Python pyparsing.Or怎么用?Python pyparsing.Or使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pyparsing的用法示例。


在下文中一共展示了pyparsing.Or方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: compile

# 需要导入模块: import pyparsing [as 别名]
# 或者: from pyparsing import Or [as 别名]
def compile(self, ignore_tags=False):
        super(AlternativeSet, self).compile()
        if self._weights:
            self._validate_weights()

            # Create a string with w=weight and e=compiled expansion
            # such that:
            # /<w 0>/ <e 0> | ... | /<w n-1>/ <e n-1>
            alt_set = "|".join([
                "/%.4f/ %s" % (float(self._weights[e]), e.compile(ignore_tags))
                for e in self.children
            ])
        else:
            # Or do the same thing without the weights
            alt_set = "|".join([
                e.compile(ignore_tags) for e in self.children
            ])

        if self.tag and not ignore_tags:
            return "(%s)%s" % (alt_set, self.compiled_tag)
        else:
            return "(%s)" % alt_set 
开发者ID:Danesprite,项目名称:pyjsgf,代码行数:24,代码来源:expansions.py

示例2: _make_matcher_element

# 需要导入模块: import pyparsing [as 别名]
# 或者: from pyparsing import Or [as 别名]
def _make_matcher_element(self):
        # Return an element that can match the alternatives.
        if self._weights:
            self._validate_weights()

            # Exclude alternatives that have a weight value of 0.
            children = []
            for e, w in self._weights.items():
                if w > 0:
                    children.append((e, w))

            # Sort the list by weight (highest to lowest).
            children = [e for e, _ in sorted(children, key=lambda x: x[1])]
            children.reverse()
        else:
            children = self.children

        return self._set_matcher_element_attributes(pyparsing.Or([
            e.matcher_element for e in children
        ])) 
开发者ID:Danesprite,项目名称:pyjsgf,代码行数:22,代码来源:expansions.py

示例3: _build_precedence

# 需要导入模块: import pyparsing [as 别名]
# 或者: from pyparsing import Or [as 别名]
def _build_precedence(self, precedence_table):
        # C's & dereference operator.
        precedence = []
        for operators, arity, associativity in precedence_table:
            operators = [pyparsing.Literal(x) for x in operators]

            if arity in [_UNARY, _BINARY]:
                operators = pyparsing.Or(operators)

            precedence.append((
                operators,
                arity,
                associativity,
                self._construct_operator(arity),
            ))
        return precedence 
开发者ID:google,项目名称:rekall,代码行数:18,代码来源:expression_parser.py

示例4: complete_statement

# 需要导入模块: import pyparsing [as 别名]
# 或者: from pyparsing import Or [as 别名]
def complete_statement(self, line):
        """Keep accepting lines of input until the command is complete."""
        if (not line) or (
            not pyparsing.Or(self.commentGrammars).
                setParseAction(lambda x: '').transformString(line)):
            raise EmptyStatement()
        statement = self.parsed(line)
        while statement.parsed.multilineCommand and (statement.parsed.terminator == ''):
            statement = '%s\n%s' % (statement.parsed.raw,
                                    self.pseudo_raw_input(self.continuation_prompt))
            statement = self.parsed(statement)
        if not statement.parsed.command:
            raise EmptyStatement()
        return statement 
开发者ID:OpenTrading,项目名称:OpenTrader,代码行数:16,代码来源:cmd2plus.py

示例5: complete_statement

# 需要导入模块: import pyparsing [as 别名]
# 或者: from pyparsing import Or [as 别名]
def complete_statement(self, line):
        """Keep accepting lines of input until the command is complete."""
        if (not line) or (
            not pyparsing.Or(self.commentGrammars).
            setParseAction(lambda x: '').transformString(line)):
            raise EmptyStatement()
        statement = self.parsed(line)
        while statement.parsed.multilineCommand and (statement.parsed.terminator == ''):
            statement = '%s\n%s' % (statement.parsed.raw,
                                    self.pseudo_raw_input(self.continuation_prompt))
            statement = self.parsed(statement)
        if not statement.parsed.command:
            raise EmptyStatement()
        return statement 
开发者ID:n0tr00t,项目名称:Beehive,代码行数:16,代码来源:cmd2.py

示例6: test_none_name

# 需要导入模块: import pyparsing [as 别名]
# 或者: from pyparsing import Or [as 别名]
def test_none_name(self):
        grammar = Or(["foo", "bar"])
        railroad = to_railroad(grammar)
        assert len(railroad) == 1
        assert railroad[0].name is not None 
开发者ID:pyparsing,项目名称:pyparsing,代码行数:7,代码来源:test_diagram.py

示例7: _make_matcher_element

# 需要导入模块: import pyparsing [as 别名]
# 或者: from pyparsing import Or [as 别名]
def _make_matcher_element(self):
        # Handle the case where use_current_match is True.
        if self.use_current_match is True:
            current_match = self.current_match
            if current_match is None:
                result = pyparsing.NoMatch()
            elif current_match == "":
                result = pyparsing.Empty()
            else:
                result = pyparsing.Literal(self.current_match)

            # Set the parse action and return the element.
            return result.setParseAction(self._parse_action)

        # Otherwise build a list of next possible literals. Make the required stack
        # of child-parent pairs.
        stack = []
        p1, p2 = self, self.parent
        while p1 and p2:
            stack.append((p1, p2))

            # Move both pivots further up the tree.
            p1 = p1.parent
            p2 = p2.parent

        # Build a list of next literals using the stack.
        next_literals, _ = _collect_next_literals(stack, 0, True, False)

        # De-duplicate the list.
        next_literals = set(next_literals)

        word = pyparsing.Regex(_word_regex_str, re.UNICODE)
        if next_literals:
            # Check if there is a next dictation literal. If there is, only match
            # one word for this expansion.
            if _word_regex_str in next_literals:
                result = word

            # Otherwise build an element to match one or more words stopping on
            # any of the next literals so that they aren't matched as dictation.
            else:
                next_literals = list(map(pyparsing.Literal, next_literals))
                result = pyparsing.OneOrMore(
                    word, stopOn=pyparsing.Or(next_literals)
                )
        else:
            # Handle the case of no literals ahead by allowing one or more Unicode
            # words without restrictions.
            result = pyparsing.OneOrMore(word)

        return self._set_matcher_element_attributes(result) 
开发者ID:Danesprite,项目名称:pyjsgf,代码行数:53,代码来源:expansions.py


注:本文中的pyparsing.Or方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。