我们从Python开源项目中,提取了以下9个代码示例,用于说明如何使用pyparsing.ParseFatalException()。
def latex_to_png_mpl(s, wrap): try: from matplotlib import mathtext from pyparsing import ParseFatalException except ImportError: return None # mpl mathtext doesn't support display math, force inline s = s.replace('$$', '$') if wrap: s = u'${0}$'.format(s) try: mt = mathtext.MathTextParser('bitmap') f = BytesIO() mt.to_png(f, s, fontsize=12) return f.getvalue() except (ValueError, RuntimeError, ParseFatalException): return None
def try_compute_type_table(banana): """ Compute the type table for the provided banana string if possible. Does not throw any exception if it fails. :type banana: str :param banana: The string to parse and type check. """ try: # Convert the grammar into an AST parser = grammar.banana_grammar() ast = parser.parse(banana) # Compute the type table for the given AST return typeck.typeck(ast) except exception.BananaException: return None except p.ParseSyntaxException: return None except p.ParseFatalException: return None except p.ParseException: return None
def into_connection(ast_node): """ Convert an ast node into a Connection node. :type ast_node: Connection | Ident :param ast_node: The ast node to convert. :rtype: Connection :return: Returns a Connection node """ if isinstance(ast_node, Connection): return ast_node elif isinstance(ast_node, Ident): return Connection( ast_node.span, [ast_node], [ast_node] ) else: raise p.ParseFatalException("Bug found!")
def execute_banana_string(banana, driver=None, emitter=emit.PrintEmitter()): """ Execute the provided banana string. It will run the parse phase, and the typechecker. :type banana: str :param banana: The string to parse and type check. :type driver: monasca_analytics.spark.driver.DriverExecutor | None :param driver: Driver that will manage the created components and connect them together. :type emitter: emit.Emitter :param emitter: Emitter for reporting errors/warning. """ try: # Convert the grammar into an AST parser = grammar.banana_grammar(emitter) ast = parser.parse(banana) # Compute the type table for the given AST type_table = typeck.typeck(ast) # Remove from the tree path that are "dead" deadpathck.deadpathck(ast, type_table, emitter) # Check that there's at least one path to be executed deadpathck.contains_at_least_one_path_to_a_sink(ast, type_table) # Evaluate the script if driver is not None: ev.eval_ast(ast, type_table, driver) except exception.BananaException as err: emitter.emit_error(err.get_span(), str(err)) except p.ParseSyntaxException as err: emitter.emit_error(span_util.from_pyparsing_exception(err), err.msg) except p.ParseFatalException as err: emitter.emit_error(span_util.from_pyparsing_exception(err), err.msg) except p.ParseException as err: emitter.emit_error(span_util.from_pyparsing_exception(err), err.msg)
def __init__(self, span, tokens): super(JsonObj, self).__init__(span) self.props = {} last_prop = None if len(tokens) > 0: for toks in tokens: for tok in toks: if isinstance(tok, DotPath): if last_prop is None: last_prop = tok else: self._set_new_prop(last_prop, tok) last_prop = None elif isinstance(tok, StringLit): if last_prop is None: last_prop = tok else: self._set_new_prop(last_prop, tok) last_prop = None elif isinstance(tok, list): if last_prop is None: raise p.ParseFatalException( "Bug Found in JsonObj!" ) self._set_new_prop( last_prop, JsonObj.dictify_array(tok) ) last_prop = None else: if last_prop is None: raise p.ParseFatalException( "Bug Found in JsonObj!" ) self._set_new_prop(last_prop, tok) last_prop = None
def _build_connection_cache(self): """ Build a cache of connections keyed by where they start from. """ for ident_from, ident_to in self.connections: if ident_from.val not in self.connections_cache: self.connections_cache[ident_from.val] = [] if ident_to.val not in self.connections_cache: self.connections_cache[ident_to.val] = [] self.connections_cache[ident_from.val].append(ident_to.val) # Sanity check for _, vals in self.connections_cache: if len(set(vals)) != len(vals): raise p.ParseFatalException("Bug found in Connection!!")