Package EasyExtend :: Module eegrammar :: Class EETokenGrammar
[hide private]
[frames] | no frames]

Class EETokenGrammar

      object --+    
               |    
  GrammarUpdater --+
                   |
      object --+   |
               |   |
eeoptions.EEShow --+
                   |
                  EETokenGrammar

Class used to handle creation / updates of Token + Token.ext specific files :

       lex_symbol.py
       lex_nfa.py

but also :

       parse_token.py
Instance Methods [hide private]
 
local_grammar_path(self)
 
grammar_ext_path(self)
 
global_grammar_path(self)
 
nfa_path(self)
 
symbol_path(self)
 
map_extended(self, rules)
 
post_process_line(self, line)
Rules in Token + Token.ext may contain strings of the kind :
 
_write_extended(self, f_symbol)
 
load_lex_symbol(self)
 
map_to_parse_token(self)
The files lex_symbol.py and parse_token.py contain the same symbols but use different node ids.
 
load_grammar(self)
Function used to create ext-language specific grammarObjects that contain dfa parser tables.

Inherited from GrammarUpdater: __init__, create_rules, langlet_path, map_symbols, read_offset, track_change, write_merged_grammar

Inherited from GrammarUpdater (private): _merge_ext

Inherited from eeoptions.EEShow: maybe_grammar_check, maybe_show_cst_after, maybe_show_cst_before, maybe_show_python, maybe_show_scan, maybe_show_token

Inherited from object: __delattr__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __str__

Class Methods [hide private]

Inherited from eeoptions.EEShow: show_tokenstream

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

local_grammar_path(self)

 
Overrides: GrammarUpdater.local_grammar_path

grammar_ext_path(self)

 
Overrides: GrammarUpdater.grammar_ext_path

global_grammar_path(self)

 
Overrides: GrammarUpdater.global_grammar_path

nfa_path(self)

 
Overrides: GrammarUpdater.nfa_path

symbol_path(self)

 
Overrides: GrammarUpdater.symbol_path

map_extended(self, rules)

 
Overrides: GrammarUpdater.map_extended

post_process_line(self, line)

 

Rules in Token + Token.ext may contain strings of the kind :

   R: A B 'xyz' C

The strings will be splitted and the resulting rule looks like :

   R: A B 'x' 'y' 'z' C
Overrides: GrammarUpdater.post_process_line

_write_extended(self, f_symbol)

 
Overrides: GrammarUpdater._write_extended

map_to_parse_token(self)

 

The files lex_symbol.py and parse_token.py contain the same symbols but use different node ids.

The general rule is :

   Nid(lex_symbol.S) == Nid(parse_token.S) - 256

Since lex_symbol.py is created first this function creates parse_token.py from lex_symbol.py.

load_grammar(self)

 

Function used to create ext-language specific grammarObjects that contain dfa parser tables. These grammar objects will be created using lifted nodes of the the used langlets.

Overrides: GrammarUpdater.load_grammar
(inherited documentation)