def p_type(p): '''type : MATRIX subty | VECTOR | SCALAR''' if len(p) == 3: if p[2] is None: p[0] = ast.IdentExp(p[1]) else: p[0] = ast.QualIdentExp(p[1], p[2]) else: p[0] = ast.IdentExp(p[1])
def p_subty(p): '''subty : "." DIA | empty''' if p[1] is None: p[0] = None else: p[0] = ast.IdentExp(p[2])
def p_sid(p): 'sid : ID' p[0] = ast.IdentExp(p[1], p.lineno(1))
def p_prog_b(p): '''prog : sid IN params '{' stmts '}' | sid OUT params '{' stmts '}' ''' p[0] = ast.FunDec(p[1], ast.IdentExp('void'), [], p[3], p[5])