analyse.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 1,397 行 · 第 1/5 页
C
1,397 行
, OPAC_END
};
static OPAC opac_COLON_AP[] = { CONV_FUN_MP_COLON
, CONV_FUN_MP_CHECK
, DIAG_FUNC_RIGHT_ONE
, CONV_RVALUE_RIGHT
, REQD_ZERO_LEFT
, RESULT_COLON_RVALUE
, CONV_TYPE_RIGHT
, RESULT_COLON
, RESULT_COND_OPRS
, OPAC_END
};
static OPAC opac_COLON_PA[] = { CONV_FUN_MP_COLON
, CONV_FUN_MP_CHECK
, DIAG_FUNC_LEFT
, CONV_RVALUE_LEFT
, REQD_ZERO_RIGHT
, RESULT_COLON_RVALUE
, RESULT_COLON
, RESULT_COND_OPRS
, OPAC_END
};
static OPAC opac_COLON_OTHER[] = { CONV_FUN_MP_LEFT
, CONV_FUN_MP_RIGHT
, DIAG_FUNC_LEFT
, DIAG_FUNC_RIGHT_ONE
, RESULT_COLON_RVALUE
, RESULT_COLON_OTHER
, RESULT_COLON
, RESULT_COND_OPRS
, OPAC_END
};
static OPAC opac_UN_ARITH_I[] = { REQD_INT_LEFT
, CONV_RVALUE_LEFT
, RESULT_UN_ARITH
, CONV_MEANINGLESS
, OPAC_END
};
static OPAC opac_UN_ARITH[] = { CONV_RVALUE_LEFT
, WARN_MINUS_UNSIGNED
, RESULT_UN_ARITH
, CONV_MEANINGLESS
, OPAC_END
};
static OPAC opac_UN_PLUS_PTR[] = { DIAG_FUNC_LEFT
, CONV_RVALUE_LEFT
, CONV_MEANINGLESS
, OPAC_END
};
static OPAC opac_ADDR_OF[] = { REQD_LVALUE_LEFT
, RESULT_ADDR_OF
, CONV_MEANINGLESS
, OPAC_END
};
static OPAC opac_INDIRECT[] = { DIAG_FUNC_LEFT
, DREF_PTR_LEFT
, CONV_STRIP_TYPE
, REQD_NOT_VOID_INDIRECT
, CONV_STAR_ADDR_OF
, RESULT_INDIRECT
, OPAC_END
};
static OPAC opac_LINCDEC_PTR[] = { DIAG_FUNC_LEFT
, REQD_PTR_SCALES_LEFT
, REQD_NOT_ARRAY_LEFT
, REQD_DEFD_CLPTR_LEFT
, REQD_LVALUE_LEFT
, REQD_NOT_CONST_LEFT
, RESULT_INCDEC_PTR
, CONV_TYPE_LEFT
, RESULT_ASSIGN
, OPAC_END
};
static OPAC opac_LINCDEC_ARITH[] = { REQD_LVALUE_LEFT
, REQD_NOT_ENUM_LEFT
, REQD_NOT_CONST_LEFT
, RESULT_INCDEC_ARITH
, RESULT_ASSIGN
, OPAC_END
};
static OPAC opac_INCDEC_PTR[] = { DIAG_FUNC_LEFT
, REQD_PTR_SCALES_LEFT
, REQD_NOT_ARRAY_LEFT
, REQD_DEFD_CLPTR_LEFT
, REQD_LVALUE_LEFT
, REQD_NOT_CONST_LEFT
, RESULT_INCDEC_PTR
, RESULT_BARE
, OPAC_END
};
static OPAC opac_INCDEC_ARITH[] = { REQD_LVALUE_LEFT
, REQD_NOT_ENUM_LEFT
, REQD_NOT_CONST_LEFT
, RESULT_INCDEC_ARITH
, RESULT_BARE
, OPAC_END
};
static OPAC opac_SW_LV_EXPR[] = { DIAG_FUNC_RIGHT_ONE
, REQD_INT_LEFT
, REQD_PTR_SCALES_RIGHT
, REQD_DEFD_CLPTR_RIGHT
, CONV_SWITCH
, RELOAD_EXPR_BINARY
, CONV_TYPE_LEFT
, CONV_BASIC_TYPE
, CONV_RVALUE_LEFT
, DREF_PTR_RIGHT
, RESULT_PTR_SIZE
, CONV_MEANINGLESS
, OPAC_END
};
static OPAC opac_LVALUE_BEXPR[] = { DIAG_FUNC_LEFT
, REQD_INT_RIGHT
, REQD_PTR_SCALES_LEFT
, REQD_DEFD_CLPTR_LEFT
, DREF_PTR_LEFT
, CONV_RVALUE_RIGHT
, RESULT_PTR_SIZE
, CONV_MEANINGLESS
, OPAC_END
};
static OPAC opac_SHIFT_OP[] = { REQD_INT_LEFT
, REQD_INT_RIGHT
, CONV_RVALUE_LEFT
, CONV_RVALUE_RIGHT
, RESULT_BIN_SHIFT
, CONV_MEANINGLESS
, OPAC_END
};
static OPAC opac_EQUAL_PP[] = { DIAG_FUNC_LEFT
, DIAG_FUNC_MANY1
, REQD_LVALUE_LEFT
, REQD_NOT_FUNC_LEFT
, REQD_NOT_CONST_LEFT
, REQD_NOT_ARRAY_LEFT
, CONV_RVALUE_RIGHT
, CONV_PP_ASSIGN
, CONV_TYPE_LEFT
, RESULT_ASSIGN
, OPAC_END
};
static OPAC opac_EQUAL_AP[] = { DIAG_FUNC_MANY1
, REQD_BOOL_LHS_ASSIGN
, REQD_LVALUE_LEFT
, REQD_NOT_CONST_LEFT
, CONV_RVALUE_RIGHT
, CONV_TYPE_LEFT
, CONV_BOOL_ASSIGN
, RESULT_ASSIGN
, RESULT_BITQUEST
, OPAC_END
};
static OPAC opac_EQUAL_AA[] = { REQD_LVALUE_LEFT
, REQD_NOT_CONST_LEFT
, REQD_ENUM_SAME
, CONV_RVALUE_RIGHT
, WARN_OPEQ_INT_TRUNC
, CONV_TYPE_LEFT
, CONV_BOOL_ASSIGN
, RESULT_ASSIGN
, RESULT_BITQUEST
, OPAC_END
};
static OPAC opac_EQUAL_PZ[] = { DIAG_FUNC_LEFT
, REQD_LVALUE_LEFT
, REQD_NOT_FUNC_LEFT
, REQD_NOT_ARRAY_LEFT
, REQD_NOT_CONST_LEFT
, REQD_ZERO_RIGHT
, CONV_RVALUE_RIGHT
, CONV_TYPE_LEFT
, RESULT_ASSIGN
, OPAC_END
};
static OPAC opac_EQUAL_OTHER[] = { CONV_FUN_MP_RIGHT
, DIAG_FUNC_LEFT
, DIAG_FUNC_MANY1
, REQD_LVALUE_LEFT
, REQD_NOT_FUNC_LEFT
, ASSIGN_OTHER
, RELOAD_EXPR_TYPE
, RESULT_BARE
, OPAC_END
};
static OPAC opac_INIT_PP[] = { CONV_INIT_REF
, REQD_NOT_FUNC_LEFT
, CONV_BASIC_TYPE
, CONV_INIT_BARE
, STATIC_TEMP_SET
, RESULT_INIT
, STATIC_TEMP_RESET
, RELOAD_EXPR_TYPE
, OPAC_END
};
static OPAC opac_INIT_AP[] = { REQD_BOOL_LHS_ASSIGN
, CONV_INIT_REF
, CONV_BASIC_TYPE
, REQD_LVALUE_LEFT
, CONV_INIT_BARE
, STATIC_TEMP_SET
, RESULT_INIT
, STATIC_TEMP_RESET
, RELOAD_EXPR_TYPE
, OPAC_END
};
static OPAC opac_INIT_AA[] = { CONV_INIT_REF
, CONV_BASIC_TYPE
, REQD_LVALUE_LEFT
, REQD_ENUM_SAME
, CONV_INIT_BARE
, STATIC_TEMP_SET
, RESULT_INIT
, STATIC_TEMP_RESET
, RELOAD_EXPR_TYPE
, OPAC_END
};
static OPAC opac_INIT_PZ[] = { CONV_INIT_REF
, REQD_NOT_FUNC_LEFT
, CONV_BASIC_TYPE
, CONV_INIT_BARE
, REQD_ZERO_RIGHT
, CONV_RVALUE_RIGHT
, STATIC_TEMP_SET
, RESULT_INIT
, STATIC_TEMP_RESET
, RELOAD_EXPR_TYPE
, OPAC_END
};
static OPAC opac_INIT_OTHER[] = { CONV_FUN_MP_RIGHT
, DIAG_FUNC_MANY2
, CONV_INIT_REF
, REQD_NOT_FUNC_LEFT
, CONV_BASIC_TYPE
, STATIC_TEMP_SET
, INIT_CL_MP
, STATIC_TEMP_RESET
, RELOAD_EXPR_TYPE
, RESULT_BARE
, OPAC_END
};
static OPAC opac_RETURN__P[] = { CONV_FUN_MP_RIGHT
, DIAG_FUNC_MANY1
, CHECK_RETN_OPT
, RESULT_RETURN
// , DIAG_AUTO_RETURN
// , RESULT_RETURN_VAL_COND
, OPAC_END
};
static OPAC opac_RETURN_PA[] = { CHECK_RETN_OPT
, RESULT_RETURN_PA
// , DIAG_AUTO_RETURN_REF
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?