Ejemplo n.º 1
0
 def get_node_name(self, nid, typ="parse", error_fn=lambda item: None):
     '''
     Node name from node id.
     '''
     name = None
     if nid is FIN:
         return "FIN"
     elif is_keyword(nid):
         if typ == "parse":
             return "kwd:" + flip(self.parse_nfa.keywords).get(
                 nid, str(nid))
         else:
             return "kwd:" + flip(self.lex_nfa.keywords).get(nid, str(nid))
     elif is_token(nid):
         if typ == "parse":
             name = self.parse_token.tok_name.get(nid)
         else:
             name = self.lex_token.tok_name.get(nid)
     elif is_symbol(nid):
         if typ == "parse":
             name = self.parse_symbol.sym_name.get(nid)
         else:
             name = self.lex_symbol.sym_name.get(nid)
     if name:
         return name
     else:
         error_fn(nid)
         return "?(nid = %s)" % nid
Ejemplo n.º 2
0
 def get_node_name(self, nid, typ = "parse", error_fn = lambda item: None):
     '''
     Node name from node id.
     '''
     name = None
     if nid is FIN:
         return "FIN"
     elif is_keyword(nid):
         if typ == "parse":
             return "kwd:"+flip(self.parse_nfa.keywords).get(nid, str(nid))
         else:
             return "kwd:"+flip(self.lex_nfa.keywords).get(nid, str(nid))
     elif is_token(nid):
         if typ == "parse":
             name = self.parse_token.tok_name.get(nid)
         else:
             name = self.lex_token.tok_name.get(nid)
     elif is_symbol(nid):
         if typ == "parse":
             name = self.parse_symbol.sym_name.get(nid)
         else:
             name = self.lex_symbol.sym_name.get(nid)
     if name:
         return name
     else:
         error_fn(nid)
         return "?(nid = %s)"%nid
Ejemplo n.º 3
0
 def __init__(self, langlet, constants):
     self.langlet   = langlet
     self.constants = constants
     self.keywords  = flip(langlet.keywords)
     self.token_map = flip(langlet.parse_token.token_map)
     self.names     = langlet.parse_symbol.sym_name
     self.names.update(langlet.parse_token.tok_name)
     super(NFA2GrammarLangletObjTranslator, self).__init__(langlet)
Ejemplo n.º 4
0
 def __init__(self, langlet, constants):
     self.langlet = langlet
     self.constants = constants
     self.keywords = flip(langlet.keywords)
     self.token_map = flip(langlet.parse_token.token_map)
     self.names = langlet.parse_symbol.sym_name
     self.names.update(langlet.parse_token.tok_name)
     super(NFA2GrammarLangletObjTranslator, self).__init__(langlet)
Ejemplo n.º 5
0
 def _load_parse_tables(self):
     if self.package is None:
         raise RuntimeError("Cannot load parse-tables. Langlet package could not be found")
     # load token/symbols
     if not self.parse_nfa:
         # load nfas
         nfas = loader.load_parse_tables(self.package)
         self.lex_nfa   = nfas["lex_nfa"]
         self.parse_nfa = nfas["parse_nfa"]
         self.keywords  = flip(self.parse_nfa.keywords)
Ejemplo n.º 6
0
 def _load_parse_tables(self):
     if self.package is None:
         raise RuntimeError(
             "Cannot load parse-tables. Langlet package could not be found")
     # load token/symbols
     if not self.parse_nfa:
         # load nfas
         nfas = loader.load_parse_tables(self.package)
         self.lex_nfa = nfas["lex_nfa"]
         self.parse_nfa = nfas["parse_nfa"]
         self.keywords = flip(self.parse_nfa.keywords)