Exemple #1
0
 def reset(self):
     self.engine = yacc.yacc(
         module=self,
         start=self._start,
         outputdir=self._tempdir,
         write_tables=bool(self._tempdir),
         debug=self._debug,
         debuglog=log if self._debug else yacc.NullLogger(),
         errorlog=log if self._debug else yacc.NullLogger(),
     )
def get_parser(debug_mode=False):
    lexer = None
    parser = None

    if debug_mode:
        lexer = lex.lex(debug=True)
        parser = yacc.yacc(write_tables=True, debug=True)
    else:
        lexer = lex.lex(debug=False, errorlog=yacc.NullLogger())
        parser = yacc.yacc(write_tables=False,
                           debug=False,
                           errorlog=yacc.NullLogger())

    return parser
Exemple #3
0
    def __init__(self,
                 geometry_factory=values.Geometry,
                 bbox_factory=values.BBox,
                 time_factory=values.Time,
                 duration_factory=values.Duration):
        self.lexer = CQLLexer(
            # lextab='ecql.lextab',
            # outputdir="ecql"
            geometry_factory,
            bbox_factory,
            time_factory,
            duration_factory,
            optimize=True,
        )

        self.lexer.build()
        self.tokens = self.lexer.tokens

        self.parser = yacc.yacc(
            module=self,
            # start='condition_or_empty',
            # debug=True,
            optimize=True,
            # tabmodule='ecql.yacctab',
            # outputdir="ecql"
            errorlog=yacc.NullLogger(),
        )
Exemple #4
0
    def __init__(self, startSym='mibFile', tempdir=''):
        if tempdir:
            tempdir = os.path.join(tempdir, startSym)
            try:
                os.makedirs(tempdir)
            except OSError:
                if sys.exc_info()[1].errno != 17:
                    raise error.PySmiError(
                        'Failed to create cache directory %s: %s' %
                        (tempdir, sys.exc_info()[1]))

        self.lexer = self.defaultLexer(tempdir=tempdir)

        # tokens are required for parser
        self.tokens = self.lexer.tokens

        if debug.logger & debug.flagParser:
            logger = debug.logger.getCurrentLogger()
        else:
            logger = yacc.NullLogger()

        if debug.logger & debug.flagGrammar:
            debuglogger = debug.logger.getCurrentLogger()
        else:
            debuglogger = None

        self.parser = yacc.yacc(module=self,
                                start=startSym,
                                write_tables=bool(tempdir),
                                debug=False,
                                outputdir=tempdir,
                                debuglog=debuglogger,
                                errorlog=logger)
 def __init__(self):
     self.loglexer = LOGLexer()
     self.loglexer.build()
     self.tokens = self.loglexer.tokens
     self.logparser = yacc.yacc(module=self,
                                start='File',
                                errorlog=yacc.NullLogger())
Exemple #6
0
    def __init__(self, **kw):
        '''
           Args:
                interface = instance of interface object, with setting set, if nothing passed default instance created.
                quit_function = a function defining what to do when quit command issued
                help_function =  a function defining what to do when help command issued
                read_file_function = a function defining what to do when a file is read. Not used currently.
        '''
        self.debug = kw.get('debug', 0)
        self.names = {}
        modname = "kodiak_parser"
        self.debugfile = modname + ".dbg"
        self.tabmodule = modname + "_" + "parsetab"

        self._quit_function = kw.get('quit_function', None)
        self._help_function = kw.get('help_function', None)
        self._read_file_function = kw.get('read_file_function', None)

        # Create the _lexer and _parser
        self._lexer = lex.lex(module=self, debug=self.debug)
        self._parser = yacc.yacc(module=self,
                                 debug=self.debug,
                                 debugfile=self.debugfile,
                                 tabmodule=self.tabmodule,
                                 errorlog=yacc.NullLogger())
Exemple #7
0
 def __init__(self, cpu):
     self._cpu = cpu
     self._labels = {}
     self._lexer = lex.lex(module=self)
     self._lexpos = 0
     self._parser = yacc.yacc(module=self, errorlog=yacc.NullLogger())
     self._file_name = None
Exemple #8
0
    def __init__(self):
        '''Create a new Schedule parser object

        Constructor
        '''

        logger.info('ScheduleParser: new object creation')
        self.lexer = ScheduleLexer()
        self.tokens = self.lexer.tokens

        #self.parser = yacc.yacc(module=self, write_tables=0, debug=True)
        self.parser = yacc.yacc(module=self,
                                write_tables=0,
                                errorlog=yacc.NullLogger())
        logger.debug('ScheduleParser: LEX/YAC ready')

        # All _private attributes to store "partial" timeslot information & parser status flag
        self._store_month = ''  # The latest month discovered by the parser
        self._store_dates = []
        self._store_timerange = []
        self._store_weekdays = []
        self._store_exc_weekdays = []
        self._store_timeslice = []
        self._store_multimonth = None

        self._day_mode = False
        self._flag_sched_differed = False
        self._multimonth = False

        self._notam_begin = None
        self._notam_end = None
        self._ref_month = None

        self._store_schedule = []
Exemple #9
0
def main(filename):
    logger = yacc.NullLogger()
    yacc.yacc()

    data = open(filename, 'r').read()
    ast = yacc.parse(data, lexer=lex.lex())
    graph(ast, filename)
Exemple #10
0
def setup_parser(work_dir):
    """
    Setup the parser.

    :return: None
    """
    global __parser
    global __lexer

    os.makedirs(work_dir, exist_ok=True)
    __lexer = lex.lex(outputdir=work_dir,
                      optimize=1,
                      errorlog=yacc.NullLogger())
    __parser = yacc.yacc(outputdir=work_dir,
                         optimize=1,
                         errorlog=yacc.NullLogger())
Exemple #11
0
def getParser(debug=False):
    lexer.getLexer()
    if debug:
        parser = yacc.yacc()
    else:
        parser = yacc.yacc(errorlog=yacc.NullLogger())
    return parser
Exemple #12
0
 def __init__(self, debug=False, text=None):
     self.errors = []
     self.tokens = VsopLexer.tokens
     self.lexer = VsopLexer()
     self.parser = yacc.yacc(module=self,
                             debug=debug,
                             errorlog=yacc.NullLogger())
Exemple #13
0
def parse_string(input_):
    GLOBAL_VARIABLES.clear()
    #yacc.yacc(errorlog=yacc.NullLogger())
    #there are a bunch of unused tokens right now, I realize this.
    lex.lex()
    parser = yacc.yacc(errorlog=yacc.NullLogger())
    parser.parse(input_)
    return True
Exemple #14
0
def generate_tree_from_string(input_):
    Tracker().reset()
    Tracker()

    lexer = lex.lex()
    parser = yacc.yacc(debug=False, errorlog=yacc.NullLogger())
    program = parser.parse(input_, lexer=lexer)
    program.generate_tree()
Exemple #15
0
 def __init__(self, lexer, tokens, errors=False):
     self.lexer = lexer
     self.tokens = tokens
     if errors:
         self.parser = yacc.yacc(module=self)
     else:
         self.parser = yacc.yacc(module=self, errorlog=yacc.NullLogger())
     self.error = False
Exemple #16
0
 def __init__(self, debug=0, skip=False, log=yacc.NullLogger()):
     self.skip = skip
     self.errors = []  #error list
     self.log_tmp = LogTemplate()
     self.parser = yacc.yacc(module=self,
                             tabmodule='pyoracc.atf.parsetab',
                             debug=debug,
                             debuglog=log)
Exemple #17
0
def ply_parse(start, data):
    """
    Create a parser for the given start symbol and parse the given
    byte-string.
    """
    lexer = lex.lex()
    parser = yacc.yacc(start=start, errorlog=yacc.NullLogger())
    return parser.parse(data)
Exemple #18
0
  def __init__(self, **kwargs):
    if 'tokens' in kwargs.keys(): # MANDATORY
      self.tokens = kwargs['tokens']
    kwargs.pop('tokens', None)

    # debugging and logging http://www.dabeaz.com/ply/ply.html#ply_nn44 
    #self.parser = yacc.yacc(module=self, start='step', errorlog=yacc.NullLogger(), debug = True, debugfile='debug_file', **kwargs) 
    self.parser = yacc.yacc(module=self, start='step', errorlog=yacc.NullLogger(), debug = False, **kwargs) 
Exemple #19
0
 def build(self, **kwargs):
     self.parser = yacc.yacc(module=self,
                             debug=False,
                             write_tables=False,
                             errorlog=yacc.NullLogger(),
                             **kwargs)
     self.lexer = HealthLexer().build()
     return self.parser
 def __init__(self):
     self.lexer = BIRLexer()
     self.tokens = self.lexer.tokens
     self.inst_parser = yacc.yacc(module=self, write_tables=0, 
                                  debug=False, start='arith_exp',
                                 errorlog=yacc.NullLogger())
     self.cond_parser = yacc.yacc(module=self, write_tables=0, 
                                  debug=False, start='bool_exp')
Exemple #21
0
def parse(source: str, debug_mode: bool = False) -> Node:
    if debug_mode:
        parser = yacc.yacc(debug=True)
    else:
        parser = yacc.yacc(debug=False, errorlog=yacc.NullLogger())
    parse_tree: Node = parser.parse(source, lexer=lexer)

    return parse_tree
    def __init__(self, **kwargs):
        if kwargs.pop('silent', False):
            kwargs['errorlog'] = yacc.NullLogger()

        kwargs.setdefault('debug', False)
        kwargs.setdefault('write_tables', False)
        self._parser = yacc.yacc(module=self, **kwargs)
        self._lexer = Lexer()
Exemple #23
0
    def test_recurse_expansion(self):
        """Verify that stack depth doesn't get exceeded on recursive rules marked for expansion."""
        g = Grammar(r"""@start: a | start a ; a : A ; A : 'a' ;""")

        # Force PLY to write to the debug log, but prevent writing it to the terminal (uses repr() on the half-built
        # STree data structures, which uses recursion).
        g._grammar.debug = yacc.NullLogger()

        g.parse("a" * (sys.getrecursionlimit() / 4))
Exemple #24
0
    def __init__(self, filename, lexer):
        # We call the constructor of the parent class
        super().__init__(filename, lexer)

        # Build the parser
        self.parser = yacc.yacc(module=self,
                                debug=False,
                                errorlog=yacc.NullLogger(),
                                tabmodule='parsetabext')
Exemple #25
0
 def __init__(self):
     self._initialize_rules()
     self._parser = yacc.yacc(module=self,
                              write_tables=False,
                              debug=False,
                              errorlog=yacc.NullLogger())
     self._lexer = TabLexer(self._construct_lexer())
     self._expected_tokens = []
     self._token_position = -1
def run_bad_code_from_string(input_):
    reset()

    lexer = lex.lex()
    parser = yacc.yacc(debug=False, errorlog=yacc.NullLogger())
    parser.parse(input_, lexer=lexer)

    execute_bad_instructions(INSTRUCTIONS)
    global OUTPUT
    return OUTPUT
Exemple #27
0
def parse():
    parser = yacc.yacc(errorlog=yacc.NullLogger())
    test_file = open("input.txt", "r")

    data = test_file.read()
    #print(data);
    code_lines = data.split('\n')
    test_file.close()
    parser.parse(data, tracking=True)
    return AST, ERRORS, code_lines
    """
Exemple #28
0
    def __init__(self, **kwargs):
        if 'tokens' in kwargs.keys():  # MANDATORY
            self.tokens = kwargs['tokens']
        kwargs.pop('tokens', None)

        # self.parser = yacc.yacc(module=self, start='step', errorlog=yacc.NullLogger(), debug = True, debugfile='debug_file', **kwargs)
        self.parser = yacc.yacc(module=self,
                                start='step',
                                errorlog=yacc.NullLogger(),
                                debug=False,
                                **kwargs)
Exemple #29
0
 def build(self, dump_pretty=False, dump_lexed=False, **kwargs):
     """Build the parser."""
     self.lexer = FunkyLexer()
     self.lexer.build()
     self.lexer = IndentationLexer(self.lexer, dump_pretty=dump_pretty,
                                               dump_lexed=dump_lexed)
     log.debug("Using PLY to build the parser...")
     self.parser = yacc.yacc(module=self,
                             errorlog=yacc.NullLogger(),
                             **kwargs)
     log.debug("Parser built.")
Exemple #30
0
def run(input_, profile_mode=False):
    reset()

    lexer = lex.lex()
    parser = yacc.yacc(debug=False, errorlog=yacc.NullLogger())
    parser.parse(input_, lexer=lexer)

    cycles = execute_bad_instructions(INSTRUCTIONS)
    if profile_mode:
        return cycles
    global OUTPUT
    return OUTPUT