16 from ..lexer
import Token, get_tokens, get_resource_tokens, get_init_tokens
17 from ..model
import Statement, ModelVisitor
19 from .fileparser
import FileParser
49 def get_model(source, data_only=False, curdir=None, lang=None):
50 return _get_model(get_tokens, source, data_only, curdir, lang)
59 return _get_model(get_resource_tokens, source, data_only, curdir, lang)
69 return _get_model(get_init_tokens, source, data_only, curdir, lang)
72 def _get_model(token_getter, source, data_only=False, curdir=None, lang=None):
73 tokens = token_getter(source, data_only, lang=lang)
76 model.validate_model()
84 if curdir
and '${CURDIR}' in t.value:
85 t.value = t.value.replace(
'${CURDIR}', curdir)
89 yield Statement.from_tokens(statement)
97 for statement
in statements:
98 while not stack[-1].handles(statement):
100 parser = stack[-1].parse(statement)
104 if model.sections
and model.sections[0].header
is None:
115 self.
filefile.languages += (node.language.code,)
NodeVisitor that supports matching nodes based on their base classes.
def visit_Config(self, node)
def get_model(source, data_only=False, curdir=None, lang=None)
Parses the given source to a model represented as an AST.
def _statements_to_model(statements, source=None)
def get_resource_model(source, data_only=False, curdir=None, lang=None)
Parses the given source to a resource file model.
def _tokens_to_statements(tokens, curdir=None)
def _get_model(token_getter, source, data_only=False, curdir=None, lang=None)
def get_init_model(source, data_only=False, curdir=None, lang=None)
Parses the given source to a init file model.