Lines Matching refs:self

43     def __init__(self, filename, base_dir, verbose=False, traceback=False, **kwargs):
44 self.protocol = None
45 self.traceback = traceback
46 self.verbose = verbose
47 self.symtab = SymbolTable(self)
48 self.base_dir = base_dir
51 self.decl_list = self.parse_file(filename, **kwargs)
53 if not self.traceback:
57 def currentLocation(self):
58 return util.Location(self.current_source, self.current_line,
59 no_warning=not self.verbose)
61 def codeFormatter(self, *args, **kwargs):
63 code['protocol'] = self.protocol
66 def process(self):
67 self.decl_list.generate()
69 def writeCodeFiles(self, code_path, includes):
70 self.symtab.writeCodeFiles(code_path, includes)
72 def writeHTMLFiles(self, html_path):
73 self.symtab.writeHTMLFiles(html_path)
75 def files(self):
78 f |= self.decl_list.files()
85 def t_c_comment(self, t):
89 def t_cpp_comment(self, t):
93 def t_newline(self, t):
174 def t_IDENT(self, t):
187 t.type = self.reserved.get(t.value, 'IDENT')
190 def t_FLOATNUMBER(self, t):
198 def t_NUMBER(self, t):
206 def t_STRING1(self, t):
212 def t_STRING2(self, t):
218 def p_file(self, p):
222 def p_empty(self, p):
225 def p_decls(self, p):
227 p[0] = ast.DeclListAST(self, p[1])
229 def p_declsx__list(self, p):
239 def p_declsx__none(self, p):
243 def p_decl__protocol(self, p):
245 if self.protocol:
247 (self.current_source, self.current_line)
249 self.protocol = p[2]
252 def p_decl__include(self, p):
254 dirname = os.path.dirname(self.current_source)
258 filename = os.path.join(self.base_dir, p[2])
259 p[0] = self.parse_file(filename)
261 def p_decl__machine0(self, p):
263 p[0] = ast.MachineAST(self, p[3], [], p[7], p[9])
265 def p_decl__machine1(self, p):
267 p[0] = ast.MachineAST(self, p[3], p[4], p[7], p[9])
269 def p_decl__action(self, p):
271 p[0] = ast.ActionDeclAST(self, p[3], p[4], p[6])
273 def p_decl__in_port(self, p):
275 p[0] = ast.InPortDeclAST(self, p[3], p[5], p[7], p[8], p[10])
277 def p_decl__out_port(self, p):
279 p[0] = ast.OutPortDeclAST(self, p[3], p[5], p[7], p[8])
281 def p_decl__trans0(self, p):
283 p[0] = ast.TransitionDeclAST(self, [], p[3], p[5], p[7], p[9])
285 def p_decl__trans1(self, p):
287 p[0] = ast.TransitionDeclAST(self, [], p[3], p[5], None, p[7])
289 def p_decl__trans2(self, p):
291 p[0] = ast.TransitionDeclAST(self, p[9], p[3], p[5], p[7], p[10])
293 def p_decl__trans3(self, p):
295 p[0] = ast.TransitionDeclAST(self, p[7], p[3], p[5], None, p[8])
297 def p_decl__extern0(self, p):
300 p[0] = ast.TypeDeclAST(self, p[3], p[4], [])
302 def p_decl__global(self, p):
305 p[0] = ast.TypeDeclAST(self, p[3], p[4], p[7])
307 def p_decl__struct(self, p):
309 p[0] = ast.TypeDeclAST(self, p[3], p[4], p[7])
311 def p_decl__enum(self, p):
314 p[0] = ast.EnumDeclAST(self, p[3], p[4], p[7])
316 def p_decl__state_decl(self, p):
320 p[0] = ast.StateDeclAST(self, p[3], p[4], p[7])
323 def p_obj_decls__list(self, p):
327 def p_obj_decls__empty(self, p):
331 def p_type_members__list(self, p):
335 def p_type_members__empty(self, p):
339 def p_type_member__0(self, p):
346 def p_decl__obj_decl(self, p):
350 def p_obj_decl__0(self, p):
352 p[0] = ast.ObjDeclAST(self, p[1], p[2], p[3], None, False)
354 def p_obj_decl__1(self, p):
356 p[0] = ast.ObjDeclAST(self, p[1], p[3], p[4], None, True)
358 def p_obj_decl__2(self, p):
360 p[0] = ast.ObjDeclAST(self, p[1], p[2], ast.PairListAST(self), p[4],
363 def p_obj_decl__3(self, p):
365 p[0] = ast.ObjDeclAST(self, p[1], p[3], ast.PairListAST(self), p[5],
369 def p_decl__func_decl(self, p):
373 def p_func_decl__0(self, p):
376 p[0] = ast.FuncDeclAST(self, p[1], p[2], p[4], p[6], None)
378 def p_func_decl__1(self, p):
381 p[0] = ast.FuncDeclAST(self, p[1], p[2], p[4], p[6], None)
383 def p_decl__func_def(self, p):
387 def p_func_def__0(self, p):
390 p[0] = ast.FuncDeclAST(self, p[1], p[2], p[4], p[6], p[7])
393 def p_type_enums__list(self, p):
397 def p_type_enums__empty(self, p):
401 def p_type_enum(self, p):
403 p[0] = ast.TypeFieldEnumAST(self, p[1], p[2])
406 def p_type_states__list(self, p):
410 def p_type_states__empty(self, p):
414 def p_type_state(self, p):
416 p[0] = ast.TypeFieldStateAST(self, p[1], p[3], p[4])
419 def p_params__many(self, p):
423 def p_params__one(self, p):
427 def p_params__none(self, p):
431 def p_param(self, p):
433 p[0] = ast.FormalParamAST(self, p[1], p[2])
435 def p_param__pointer(self, p):
437 p[0] = ast.FormalParamAST(self, p[1], p[3], None, True)
439 def p_param__pointer_default(self, p):
441 p[0] = ast.FormalParamAST(self, p[1], p[3], p[5], True)
443 def p_param__default_number(self, p):
445 p[0] = ast.FormalParamAST(self, p[1], p[2], p[4])
447 def p_param__default_bool(self, p):
449 p[0] = ast.FormalParamAST(self, p[1], p[2], p[4])
451 def p_param__default_string(self, p):
453 p[0] = ast.FormalParamAST(self, p[1], p[2], p[4])
456 def p_types__multiple(self, p):
460 def p_types__one(self, p):
464 def p_types__empty(self, p):
468 def p_typestr__multi(self, p):
472 def p_typestr__single(self, p):
476 def p_type__one(self, p):
478 p[0] = ast.TypeAST(self, p[1])
480 def p_void(self, p):
482 p[0] = ast.TypeAST(self, p[1])
485 def p_idents__braced(self, p):
489 def p_idents__bare(self, p):
493 def p_identx__multiple_1(self, p):
498 def p_identx__multiple_2(self, p):
502 def p_identx__single(self, p):
506 def p_ident(self, p):
510 def p_ident_or_star(self, p):
516 def p_pairs__list(self, p):
520 def p_pairs__empty(self, p):
522 p[0] = ast.PairListAST(self)
524 def p_pairsx__many(self, p):
529 def p_pairsx__one(self, p):
531 p[0] = ast.PairListAST(self)
534 def p_pair__assign(self, p):
538 p[0] = ast.PairAST(self, p[1], p[3])
540 def p_pair__literal(self, p):
542 p[0] = ast.PairAST(self, "short", p[1])
545 def p_statements__inner(self, p):
547 p[0] = ast.StatementListAST(self, p[2])
549 def p_statements__none(self, p):
551 p[0] = ast.StatementListAST(self, [])
553 def p_statements_inner__many(self, p):
557 def p_statements_inner__one(self, p):
561 def p_exprs__multiple(self, p):
565 def p_exprs__one(self, p):
569 def p_exprs__empty(self, p):
573 def p_statement__expression(self, p):
575 p[0] = ast.ExprStatementAST(self, p[1])
577 def p_statement__assign(self, p):
579 p[0] = ast.AssignStatementAST(self, p[1], p[3])
581 def p_statement__enqueue(self, p):
583 p[0] = ast.EnqueueStatementAST(self, p[3], p[5], None, p[7])
585 def p_statement__enqueue_latency(self, p):
587 p[0] = ast.EnqueueStatementAST(self, p[3], p[5], p[7], p[9])
589 def p_statement__stall_and_wait(self, p):
591 p[0] = ast.StallAndWaitStatementAST(self, p[3], p[5])
593 def p_statement__peek(self, p):
595 p[0] = ast.PeekStatementAST(self, p[3], p[5], p[6], p[8], "peek")
597 def p_statement__check_allocate(self, p):
599 p[0] = ast.CheckAllocateStatementAST(self, p[3])
601 def p_statement__check_next_cycle(self, p):
603 p[0] = ast.CheckNextCycleAST(self)
605 def p_statement__check_stop(self, p):
607 p[0] = ast.CheckStopStatementAST(self, p[3], p[5], p[7])
609 def p_statement__check_probe(self, p):
611 p[0] = ast.CheckProbeStatementAST(self, p[3], p[5])
613 def p_statement__return(self, p):
615 p[0] = ast.ReturnStatementAST(self, p[2])
617 def p_statement__if(self, p):
621 def p_if_statement__if(self, p):
623 p[0] = ast.IfStatementAST(self, p[3], p[5], None)
625 def p_if_statement__if_else(self, p):
627 p[0] = ast.IfStatementAST(self, p[3], p[5], p[7])
629 def p_statement__if_else_if(self, p):
631 p[0] = ast.IfStatementAST(self, p[3], p[5],
632 ast.StatementListAST(self, p[7]))
634 def p_expr__static_cast(self, p):
636 p[0] = ast.StaticCastAST(self, p[3], "ref", p[5])
638 def p_expr__static_cast_ptr(self, p):
640 p[0] = ast.StaticCastAST(self, p[3], p[5], p[7])
642 def p_expr__var(self, p):
646 def p_expr__localvar(self, p):
648 p[0] = ast.LocalVariableAST(self, p[1], p[2])
650 def p_expr__literal(self, p):
654 def p_expr__enumeration(self, p):
658 def p_expr__func_call(self, p):
660 p[0] = ast.FuncCallExprAST(self, p[1], p[3])
662 def p_expr__new(self, p):
664 p[0] = ast.NewExprAST(self, p[2])
666 def p_expr__null(self, p):
668 p[0] = ast.OodAST(self)
670 def p_expr__member(self, p):
672 p[0] = ast.MemberExprAST(self, p[1], p[3])
674 def p_expr__member_method_call(self, p):
676 p[0] = ast.MemberMethodCallExprAST(self, p[1],
677 ast.FuncCallExprAST(self, p[3], p[5]))
679 def p_expr__member_method_call_lookup(self, p):
681 p[0] = ast.MemberMethodCallExprAST(self, p[1],
682 ast.FuncCallExprAST(self, "lookup", p[3]))
684 def p_expr__class_method_call(self, p):
686 p[0] = ast.ClassMethodCallExprAST(self, p[1],
687 ast.FuncCallExprAST(self, p[3], p[5]))
689 def p_expr__aexpr(self, p):
693 def p_expr__binary_op(self, p):
708 p[0] = ast.InfixOperatorExprAST(self, p[1], p[2], p[3])
711 def p_expr__unary_op(self, p):
716 p[0] = ast.PrefixOperatorExprAST(self, p[1], p[2])
718 def p_expr__parens(self, p):
722 def p_expr__is_valid_ptr(self, p):
724 p[0] = ast.IsValidPtrExprAST(self, p[3], True)
726 def p_expr__is_invalid_ptr(self, p):
728 p[0] = ast.IsValidPtrExprAST(self, p[3], False)
730 def p_literal__string(self, p):
732 p[0] = ast.LiteralExprAST(self, p[1], "std::string")
734 def p_literal__number(self, p):
736 p[0] = ast.LiteralExprAST(self, p[1], "int")
738 def p_literal__float(self, p):
740 p[0] = ast.LiteralExprAST(self, p[1], "int")
742 def p_literal__bool(self, p):
744 p[0] = ast.LiteralExprAST(self, p[1], "bool")
746 def p_enumeration(self, p):
748 p[0] = ast.EnumExprAST(self, ast.TypeAST(self, p[1]), p[3])
750 def p_var(self, p):
752 p[0] = ast.VarExprAST(self, p[1])