def __init__(self): IDLLexer.__init__(self) self._AddTokens(["INLINE", "LSHIFT", "RSHIFT"]) self._AddKeywords(["label", "struct"]) # Add number types self._AddKeywords(["char", "int8_t", "int16_t", "int32_t", "int64_t"]) self._AddKeywords(["uint8_t", "uint16_t", "uint32_t", "uint64_t"]) self._AddKeywords(["double_t", "float_t"]) # Add handle types self._AddKeywords(["handle_t", "PP_FileHandle"]) # Add pointer types (void*, char*, const char*, const void*) self._AddKeywords(["mem_t", "str_t", "cstr_t", "interface_t"]) # Remove JS types self._DelKeywords( [ "boolean", "byte", "ByteString", "Date", "DOMString", "double", "float", "long", "object", "octet", "RegExp", "short", "unsigned", ] )
def __init__(self): IDLLexer.__init__(self) self.yaccobj = yacc.yacc(module=self, tabmodule=None, debug=False, optimize=0, write_tables=0) self.build_debug = GetOption("build_debug") self.parse_debug = GetOption("parse_debug") self.token_debug = GetOption("token_debug") self.verbose = GetOption("verbose") self.parse_errors = 0
def __init__(self): IDLLexer.__init__(self) self.yaccobj = yacc.yacc(module=self, tabmodule=None, debug=False, optimize=0, write_tables=0) self.build_debug = GetOption('build_debug') self.parse_debug = GetOption('parse_debug') self.token_debug = GetOption('token_debug') self.verbose = GetOption('verbose') self.parse_errors = 0
def __init__(self, options = {}): global PARSER_OPTIONS IDLLexer.__init__(self, options) self.yaccobj = yacc.yacc(module=self, tabmodule=None, debug=False, optimize=0, write_tables=0) for k in options: PARSER_OPTIONS[k] = options[k] self.build_debug = PARSER_OPTIONS['build_debug'] self.parse_debug = PARSER_OPTIONS['parse_debug'] self.token_debug = PARSER_OPTIONS['token_debug'] self.verbose = PARSER_OPTIONS['verbose'] self.parse_errors = 0
def setUp(self): self.lexer = IDLLexer() cur_dir = os.path.dirname(os.path.realpath(__file__)) self.filenames = [ os.path.join(cur_dir, 'test_lexer/values.in'), os.path.join(cur_dir, 'test_lexer/keywords.in') ]
def __init__(self): IDLLexer.__init__(self) self._AddTokens(['INLINE', 'LSHIFT', 'RSHIFT']) self._AddKeywords(['label', 'struct']) # Add number types self._AddKeywords(['char', 'int8_t', 'int16_t', 'int32_t', 'int64_t']) self._AddKeywords(['uint8_t', 'uint16_t', 'uint32_t', 'uint64_t']) self._AddKeywords(['double_t', 'float_t']) # Add handle types self._AddKeywords(['handle_t', 'PP_FileHandle']) # Add pointer types (void*, char*, const char*, const void*) self._AddKeywords(['mem_t', 'str_t', 'cstr_t', 'interface_t']) # Remove JS types self._DelKeywords(['boolean', 'byte', 'Date', 'DOMString', 'double', 'float', 'long', 'object', 'octet', 'short', 'unsigned'])
def __init__(self): IDLLexer.__init__(self) self._AddTokens(['INLINE', 'LSHIFT', 'RSHIFT']) self._AddKeywords(['label', 'struct']) # Add number types self._AddKeywords(['char', 'int8_t', 'int16_t', 'int32_t', 'int64_t']) self._AddKeywords(['uint8_t', 'uint16_t', 'uint32_t', 'uint64_t']) self._AddKeywords(['double_t', 'float_t']) # Add handle types self._AddKeywords(['handle_t', 'PP_FileHandle']) # Add pointer types (void*, char*, const char*, const void*) self._AddKeywords(['mem_t', 'str_t', 'cstr_t', 'interface_t']) # Remove JS types self._DelKeywords(['boolean', 'byte', 'ByteString', 'Date', 'DOMString', 'double', 'float', 'long', 'object', 'octet', 'RegExp', 'short', 'unsigned'])
def main(argv): nodes = [] parser = IDLParser(IDLLexer()) errors = 0 for filename in argv: filenode = ParseFile(parser, filename) errors += filenode.GetProperty('ERRORS') nodes.append(filenode) ast = IDLNode('AST', '__AST__', 0, 0, nodes) print '\n'.join(ast.Tree(accept_props=['PROD'])) if errors: print '\nFound %d errors.\n' % errors return errors
def TestErrors(filename, filenode): nodelist = filenode.GetChildren() lexer = IDLLexer() data = open(filename).read() lexer.SetData(filename, data) pass_comments = [] fail_comments = [] while True: tok = lexer.lexobj.token() if tok == None: break if tok.type == 'COMMENT': args = tok.value[3:-3].split() if args[0] == 'OK': pass_comments.append((tok.lineno, ' '.join(args[1:]))) else: if args[0] == 'FAIL': fail_comments.append((tok.lineno, ' '.join(args[1:]))) obj_list = [] for node in nodelist: obj_list.extend(FlattenTree(node)) errors = 0 # # Check for expected successes # obj_cnt = len(obj_list) pass_cnt = len(pass_comments) if obj_cnt != pass_cnt: InfoOut.Log("Mismatched pass (%d) vs. nodes built (%d)." % (pass_cnt, obj_cnt)) InfoOut.Log("PASS: %s" % [x[1] for x in pass_comments]) InfoOut.Log("OBJS: %s" % obj_list) errors += 1 if pass_cnt > obj_cnt: pass_cnt = obj_cnt for i in range(pass_cnt): line, comment = pass_comments[i] if obj_list[i] != comment: ErrOut.LogLine(filename, line, None, "OBJ %s : EXPECTED %s\n" % (obj_list[i], comment)) errors += 1 # # Check for expected errors # err_list = ErrOut.DrainLog() err_cnt = len(err_list) fail_cnt = len(fail_comments) if err_cnt != fail_cnt: InfoOut.Log("Mismatched fail (%d) vs. errors seen (%d)." % (fail_cnt, err_cnt)) InfoOut.Log("FAIL: %s" % [x[1] for x in fail_comments]) InfoOut.Log("ERRS: %s" % err_list) errors += 1 if fail_cnt > err_cnt: fail_cnt = err_cnt for i in range(fail_cnt): line, comment = fail_comments[i] err = err_list[i].strip() if err_list[i] != comment: ErrOut.Log("%s(%d) Error\n\tERROR : %s\n\tEXPECT: %s" % (filename, line, err_list[i], comment)) errors += 1 # Clear the error list for the next run err_list = [] return errors
def setUp(self): self.lexer = IDLLexer() self.filenames = [ 'test_lexer/values.in', 'test_lexer/keywords.in' ]
def setUp(self): self.parser = IDLParser(IDLLexer(), mute_error=True) self.filenames = glob.glob('test_parser/*_web.idl')
def setUp(self): self.parser = IDLParser(IDLLexer(), mute_error=True)
def setUp(self): self.parser = IDLParser(IDLLexer(), mute_error=True) test_dir = os.path.abspath( os.path.join(os.path.dirname(__file__), 'test_parser')) self.filenames = glob.glob('%s/*_web.idl' % test_dir)
def __init__(self): IDLLexer.__init__(self) self._AddTokens(['LSHIFT', 'RSHIFT', 'INLINE']) self._AddKeywords(['label', 'namespace', 'struct'])
def __init__(self): IDLLexer.__init__(self) self._AddTokens(["LSHIFT", "RSHIFT", "INLINE"]) self._AddKeywords(["label", "namespace", "struct"])