mirror of
https://github.com/espressif/esp-idf.git
synced 2024-09-19 14:26:01 -04:00
ldgen: rename key-value grammar class
This commit is contained in:
parent
10c5226095
commit
69906ed5f2
@ -25,7 +25,6 @@ from pyparsing import (Combine, Forward, Group, Keyword, Literal, OneOrMore, Opt
|
||||
originalTextFor, restOfLine)
|
||||
from sdkconfig import SDKConfig
|
||||
|
||||
KeyGrammar = namedtuple('KeyGrammar', 'grammar min max required')
|
||||
|
||||
|
||||
class FragmentFile():
|
||||
@ -192,6 +191,8 @@ class Fragment():
|
||||
such as checking the validity of the fragment name and getting the entry values.
|
||||
"""
|
||||
|
||||
KeyValue = namedtuple('KeyValue', 'grammar min max required')
|
||||
|
||||
IDENTIFIER = Word(alphas + '_', alphanums + '_')
|
||||
ENTITY = Word(alphanums + '.-_$')
|
||||
|
||||
@ -213,7 +214,7 @@ class Sections(Fragment):
|
||||
entries_grammar = Combine(GNU_LD_SYMBOLS + Optional('+'))
|
||||
|
||||
grammars = {
|
||||
'entries': KeyGrammar(entries_grammar.setResultsName('section'), 1, None, True)
|
||||
'entries': Fragment.KeyValue(entries_grammar.setResultsName('section'), 1, None, True)
|
||||
}
|
||||
|
||||
"""
|
||||
@ -251,7 +252,7 @@ class Scheme(Fragment):
|
||||
"""
|
||||
|
||||
grammars = {
|
||||
'entries': KeyGrammar(Fragment.IDENTIFIER.setResultsName('sections') + Suppress('->') +
|
||||
'entries': Fragment.KeyValue(Fragment.IDENTIFIER.setResultsName('sections') + Suppress('->') +
|
||||
Fragment.IDENTIFIER.setResultsName('target'), 1, None, True)
|
||||
}
|
||||
|
||||
@ -448,8 +449,8 @@ class Mapping(Fragment):
|
||||
Optional(Suppress(';') + delimitedList(section_target_flags).setResultsName('sections_target_flags')))
|
||||
|
||||
grammars = {
|
||||
'archive': KeyGrammar(Or([Fragment.ENTITY, Word(Entity.ALL)]).setResultsName('archive'), 1, 1, True),
|
||||
'entries': KeyGrammar(entry, 0, None, True)
|
||||
'archive': Fragment.KeyValue(Or([Fragment.ENTITY, Word(Entity.ALL)]).setResultsName('archive'), 1, 1, True),
|
||||
'entries': Fragment.KeyValue(entry, 0, None, True)
|
||||
}
|
||||
|
||||
return grammars
|
||||
|
@ -292,7 +292,7 @@ class RootNode(EntityNode):
|
||||
def __init__(self):
|
||||
EntityNode.__init__(self, None, Entity.ALL)
|
||||
self.child_t = ArchiveNode
|
||||
self.entity = Entity('*')
|
||||
self.entity = Entity(Entity.ALL)
|
||||
|
||||
|
||||
class Generation:
|
||||
|
@ -23,20 +23,20 @@ from io import StringIO
|
||||
from pyparsing import ParseException, ParseFatalException, Word, alphanums
|
||||
|
||||
try:
|
||||
from fragments import FRAGMENT_TYPES, Fragment, FragmentFile, KeyGrammar, Mapping
|
||||
from fragments import FRAGMENT_TYPES, Fragment, FragmentFile, Mapping
|
||||
from sdkconfig import SDKConfig
|
||||
except ImportError:
|
||||
sys.path.append('../')
|
||||
from fragments import FRAGMENT_TYPES, Fragment, FragmentFile, KeyGrammar, Mapping
|
||||
from fragments import FRAGMENT_TYPES, Fragment, FragmentFile, Mapping
|
||||
from sdkconfig import SDKConfig
|
||||
|
||||
|
||||
class SampleFragment(Fragment):
|
||||
|
||||
grammars = {
|
||||
'key_1': KeyGrammar(Word(alphanums + '_').setResultsName('value'), 0, None, True),
|
||||
'key_2': KeyGrammar(Word(alphanums + '_').setResultsName('value'), 0, None, False),
|
||||
'key_3': KeyGrammar(Word(alphanums + '_').setResultsName('value'), 3, 5, False)
|
||||
'key_1': Fragment.KeyValue(Word(alphanums + '_').setResultsName('value'), 0, None, True),
|
||||
'key_2': Fragment.KeyValue(Word(alphanums + '_').setResultsName('value'), 0, None, False),
|
||||
'key_3': Fragment.KeyValue(Word(alphanums + '_').setResultsName('value'), 3, 5, False)
|
||||
}
|
||||
|
||||
def set_key_value(self, key, parse_results):
|
||||
|
Loading…
Reference in New Issue
Block a user