Skip to content

unnamed function

currently function declare is veeeeery long, make a shorter one.

current:

t=(LOCAL_DECLARE_OP|ASYNC_DECLARE_OP) INT_NUM FUNCTION_TYPE
NAMING YUE IDENTIFIER

(FUNCTION_ARGS_START FUNCTION_ARGS_GET
(args+=INT_NUM t+=(NUM_TYPE|LIST_TYPE|STRING_TYPE|BOOL_TYPE|OBJECT_TYPE|FUNCTION_TYPE)
(YUE id+=IDENTIFIER)+)+)?

FUNCTION_BODY_START

statements 

DEFINE_CLOSURE IDENTIFIER FUNCTION_DEFINE_END ;

prefer:

t=(LOCAL_DECLARE_OP|ASYNC_DECLARE_OP) INT_NUM FUNCTION_TYPE

(NEED (t+=(NUM_TYPE|LIST_TYPE|STRING_TYPE|BOOL_TYPE|OBJECT_TYPE|FUNCTION_TYPE) 
YUE id+=IDENTIFIER)+)?

statements
FUNCTION_DEFINE_END
DECLARE_HAVE FUNCTION_TYPE

(NEED (t+=(NUM_TYPE|LIST_TYPE|STRING_TYPE|BOOL_TYPE|OBJECT_TYPE|FUNCTION_TYPE) 
YUE id+=IDENTIFIER)+)?

statements
FUNCTION_DEFINE_END

lexer

NEED: '需';