def p_funcdeclforward(p):
    """ function_declaration : DECLARE function_header_pre
    """
    if p[2] is None:
        if FUNCTION_LEVEL:
            FUNCTION_LEVEL.pop()
        return

    if p[2].entry.forwarded:
        syntax_error(p.lineno(1), "duplicated declaration for function '%s'" % p[2].name)

    p[2].entry.forwarded = True
    SYMBOL_TABLE.leave_scope()
    FUNCTION_LEVEL.pop()
def p_funcdeclforward ( p ) : if p [ 2 ] is None : if FUNCTION_LEVEL : FUNCTION_LEVEL . pop ( ) return if p [ 2 ] . entry . forwarded : syntax_error ( p . lineno ( 1 ) , "duplicated declaration for function '%s'" % p [ 2 ] . name ) p [ 2 ] . entry . forwarded = True SYMBOL_TABLE . leave_scope ( ) FUNCTION_LEVEL . pop ( )
function_declaration : DECLARE function_header_pre