def p_eve_1(p): '''eve : statement''' p[0] = [p[1]] def p_eve_2(p): '''eve : eve statement''' p[1].append(p[2]) p[0] = p[1] def p_statement_1(p): '''statement : NAMESPACE SYM EQ INT DASH INT''' current_namespace = Namespace(p[2], p[4], p[6]) p[0] = current_namespace def p_statement_2(p): ''' statement : type | global_field ''' p[0] = p[1] def p_type(p): '''type : TYPE SYM typedef''' p[3].name = p[2] p[3].namespace = current_namespace.name p[0] = p[3]