class Driver(object):
- def __init__(self, grammar, convert=None, logger=None):
+ def __init__(
+ self,
+ grammar,
+ convert=None,
+ logger=None,
+ ):
self.grammar = grammar
if logger is None:
- logger = logging.getLogger()
+ logger = logging.getLogger(__name__)
self.logger = logger
self.convert = convert
def parse_stream_raw(self, stream, debug=False):
"""Parse a stream and return the syntax tree."""
- tokens = tokenize.generate_tokens(stream.readline)
+ tokens = tokenize.generate_tokens(stream.readline, grammar=self.grammar)
return self.parse_tokens(tokens, debug)
def parse_stream(self, stream, debug=False):
def parse_string(self, text, debug=False):
"""Parse a string and return the syntax tree."""
- tokens = tokenize.generate_tokens(io.StringIO(text).readline)
+ tokens = tokenize.generate_tokens(
+ io.StringIO(text).readline,
+ grammar=self.grammar
+ )
return self.parse_tokens(tokens, debug)
def _partially_consume_prefix(self, prefix, column):
current_line = ""
current_column = 0
wait_for_nl = False
- elif char == ' ':
+ elif char in ' \t':
current_column += 1
- elif char == '\t':
- current_column += 4
elif char == '\n':
# unexpected empty line
current_column = 0
save=True, force=False, logger=None):
"""Load the grammar (maybe from a pickle)."""
if logger is None:
- logger = logging.getLogger()
+ logger = logging.getLogger(__name__)
gp = _generate_pickle_name(gt) if gp is None else gp
if force or not _newer(gp, gt):
logger.info("Generating grammar tables from %s", gt)