hale_internal HALE_PARSE(_root) { if (input_match(S, hale_ch("/*"), 2)) { push(S, TokenId::CommentBlock, _comment_block, -2); token_add(S, TokenId::CommentBlockBegin, -2, 0); return 1; } else if (input_match(S, hale_ch("\""), 1)) { push(S, TokenId::StringQuotedDouble, _string_quoted_double, -1); token_add(S, TokenId::StringQuotedDoubleBegin, -1, 0); return 1; } return 0; }
hale_internal HALE_PARSE(_comment_block) { if (input_match(S, hale_ch("*/"), 2)) { token_add(S, TokenId::CommentBlockEnd, -2, 0); pop(S, 0); return 1; } return 0; }
gdsl_list_t token_add_tail(gdsl_list_t tokens, const char *name, gdsl_list_t sub) { token_add(tail, tokens, name, sub); }
gdsl_list_t token_add_head(gdsl_list_t tokens, const char *name, gdsl_list_t sub) { token_add(head, tokens, name, sub); }