5 #define TOKEN_DECLARE(token, str, name) {token, str, 0, name, 0, NULL, }
6 #define TOKEN_PROC_DECLARE(str, name) {NULL, str, 0, name, 0, &name##_PROC, }
8 //#define TOKEN_DECLARE(token, str, name) {NULL, str, 0, name, 0, 0, }
9 //#define TOKEN_PROC_DECLARE(str, name) {NULL, str, 0, name, 0, &name##_PROC, }
16 * @ subst-script expansion
20 * @ subst in cmdline, like sub-func-ivk in param, append subst-info on param array elem.
21 * T_C89_CMNT, T_EXT_CMNT, TXT with some tokens
22 * T_SUBST_WORD, T_SUBST_STR, fmt txt with substitusion token
23 * T_WORD_BACK_QUOTE(`cmd`), T_ENVAR($ENVAR), T_SUBSTSCRIPT($()), T_ARITHEXPR($(()), $[]), are substitusion token
27 @ expanssion used for envar
28 @ substitution is a txt replacing opr
29 @ glob, substitution of * and ? in file path
31 @ three kinds of thing trig substition in string or word
36 @ in code state, in/out pipe subscript also trig substition.
40 @ subst string and word are the string format.
41 T_SUBST_STR, // STRING contans subst-things
42 T_SUBST_WORD, // WORD contans subst-things
44 @ subst token and T_SUBST_STR, combine to T_SUBST_STR
50 // T_WORD_QUOTE = 260,
70 // { .chars={"-"}, "T_SUB", STATE_CODE, T_SUB, TF_PFX, &on_c99_cmnt_proc },
95 T_OPT_UO
, // "-O", owner
96 T_OPT_UG
, // "-G", GID
102 T_OPT_H
, // "-h", link
103 T_OPT_UL
, // "-L", link
104 T_OPT_US
, // "-S", socket
105 T_OPT_T
, // "-t", term dev
106 T_OPT_K
, // "-k", stick
107 T_OPT_UN
, // "-N", modified unitl read
114 T_BACKSLASH
, // "\\",
116 // TOKEN_DECLARE("::", T_DCOLON, ),
117 // TOKEN_DECLARE(":", T_COLON, ),
119 T_C99_CMNT_HDR
, // "//"}, ),
120 T_SH_CMNT_HDR
, // "#"}, ),
121 // TOKEN_DECLARE("#"}, T_SHARP, ),
123 T_C99_CMNT
, // "// XX"}, ),
130 // { {"/****/"}, "T_EXT_CMNT_HDR", STATE_TEXT_CMNT, T_EXT_CMNT_HDR, TF_OPCHAR, on_ext_cmnt },
131 // { {"/**/"}, "T_C89_CMNT_HDR", STATE_TEXT_CMNT, T_C89_CMNT_HDR, TF_OPCHAR, on_c89_cmnt },
132 T_EXT_CMNT_HDR
, // "/**",
133 T_EXT_CMNT_TAIL
, // "**/",
134 T_C89_CMNT_HDR
, // "/*",
135 T_C89_CMNT_TAIL
, // "*/",
140 // TOKEN_DECLARE("<", "T_LT", 0, T_LT, TF_PFX, &on_dollar_proc },
141 // TOKEN_DECLARE(">", "T_GT", 0, T_GT, TF_PFX, &on_dollar_proc },
147 T_ENVAR_BEGIN
, // "${"
149 T_SCRIPT_BEGIN
, // "$("
151 T_ARITHEXPR_BEGIN
, // "$(("
152 T_ARITHEXPR_END
, // "))"
153 T_SUBST_ENVAR
, // "${VAR}"
154 T_SUBST_SCRIPT
, // "$(SCR)"
155 T_SUBST_ARITHEXPR
, // "$((SCR))"
157 T_SUBSCRIPT
, // "(SCR)"
160 // { {"\"\""}, "T_DQUOTE", STATE_CODE, ),
161 // { {"''"}, "T_QUOTE", STATE_CODE, ),
162 // { {"``"}, T_BACK_QUOTE, ),
166 T_BACK_QUOTE
, // "`",
168 /* word & quoted-str & subst */
173 T_WORD_QUOTE
, // "'",
175 T_WORD_QUOTE_FMT
, // "'",
177 T_SUBST_STR
, // STRING contans subst-things
178 T_SUBST_WORD
, // WORD contans subst-things
181 // { {"()"}, "T_LBRACKET1", STATE_CODE, T_LBRACKET1, TF_OPCHAR, on_bracket1 },
185 // { {"[]"}, "T_LBRACKET2", STATE_CODE, T_LBRACKET2, TF_OPCHAR, NULL },
189 // { {"{}"}, "T_LBRACKET3", STATE_CODE, T_LBRACKET3, TF_OPCHAR, on_bracket3 },
193 // { {"(())"}, "T_DLBRACKET1", STATE_EXPR, T_DLBRACKET1, TF_OPCHAR, NULL },
194 T_DLBRACKET1
, // "((",
195 T_DRBRACKET1
, // "))",
198 // { {"<>"}, "T_CMNT_LTAG", STATE_CODE, T_CMNT_LTAG, TF_OPCHAR, on_ext_cmnt },
203 // { .chars={"[[]]"}, T_DLBRACKET2, TF_OPCHAR, NULL },
204 T_DLBRACKET2
, // "[[",
205 T_DRBRACKET2
, // "]]",
228 T_POWEQUAL
, // "^^=",
233 T_LSHIFTEQUAL
, // "<<=",
234 T_RSHIFTEQUAL
, // ">>=",
267 T_BACKGROUND
, // "&",
278 T_LTGT_AND
, // "<>&",
279 T_GT_AND_BAR
, // ">&-",
280 T_LT_AND_BAR
, // "<&-",
281 T_LTGT_AND_BAR
, // "<>&-",
286 // TOKEN_DECLARE("#", T_SHARP, ),
288 // { .chars={"/"}, "T_SPLASH", STATE_CODE, ),
289 // { .chars={"%"}, "T_PERCENT", STATE_CODE, T_PERCENT, TF_OPCHAR, NULL },
290 // { .chars={"*"}, "T_STAR", STATE_CODE, T_STAR, TF_OPCHAR, NULL },
291 // { .chars={":"}, "T_COLON", STATE_CODE, T_COLON, TF_OPCHAR, NULL },
303 // { .chars={"-"}, "T_SUB", STATE_CODE, T_SUB, TF_OPCHAR, NULL },
304 // { .chars={"="}, "T_EQUAL", STATE_CODE, T_EQUAL, TF_OPCHAR, NULL },
305 // { .chars={"+"}, "T_ADD", STATE_CODE, T_ADD, TF_OPCHAR, NULL },
306 // { .chars={"?"}, "T_QUESTION", STATE_CODE, T_QUESTION, TF_OPCHAR, NULL },
308 T_COLONEQUAL
, // ":=",
310 T_COLONQUESTION
, // ":?",
313 T_STR_QUOTE
, // "##%%",
316 T_SPLIT_STRIP
, // "<|>",
334 T_SWITCH
, // "switch",
336 T_CONTINUE
, // "continue",
338 T_DEFAULT
, // "default",
339 T_RETURN
, // "return",
341 T_SIZEOF
, // "sizeof",
342 T_TYPEOF
, // "typeof",
345 T_REGISTER
, // "register",
347 T_STATIC
, // "static",
348 T_VOLATILE
, // "volatile",
349 T_EXTERN
, // "extern",
351 T_TYPEDEF
, // "typedef",
352 T_STRUCT
, // "struct",
359 T_FUNC
, // "function",
366 T_SELECT
, // "select",
371 T_PACKET
, // "packet",
373 T_FOREACH
, // "foreach",
375 T_JUDGEMENT
, // "judgement",
376 T_CONDITION
, // "condition",
378 T_CONDEF
, // "condef",
380 T_REQUEST
, // "request",
381 T_FAILED
, // "failed",
383 // { "try", "T_TRY", STATE_CODE, T_TRY, ),
384 // { "throw", "T_THROW", STATE_CODE, T_THROW, ),
387 T_EXCEPTION
, // "exception",
390 T_PUBLIC
, // "public",
391 T_PRIVATE
, // "private",
392 T_PROPERTY
, // "property",
394 T_OVERIDE
, // "overide",
403 T_GLOBAL
, // "global",
405 T_SYSTEM
, // "system",
407 // TOKEN_DECLARE("condition", T_DEFAULT, ),
414 T_TAG_FILE
, // "file",
415 T_TAG_FUNC
, // "func",
416 T_TAG_BRIEF
, // "brief",
417 T_TAG_PARAM
, // "param",
418 T_TAG_RETURN
, // "return",
419 T_TAG_RETVAL
, // "retval",
420 T_TAG_NOTE
, // "note",
421 T_TAG_ERROR
, // "error",
423 T_TAG_SECTION
, // "section",
426 T_MINCLUDE
, // "include",
427 T_MIFNDEF
, // "ifndef",
428 T_MDEFINE
, // "define",
429 T_MPRAGMA
, // "pragma",
430 T_MIFDEF
, // "ifdef",
431 T_MENDIF
, // "endif",
439 * T_SKIP is used for state switching
440 * or other token-combination.
446 * tokens below defined for extension.
448 T_CMNT_STR
= T_TAIL_SUB
+ 1,
449 // [[:alnum:]_] string, started with [[:alpha:]_]
458 * T_STR_LITERAL: "pure c-style string without word combination"
459 * T_WORD: SH_WORD"string mix with word"ANOTHER_WORD
480 T_ALLNOCONFIG_Y
= 261,
488 T_DEFCONFIG_LIST
= 269,
490 T_DEF_TRISTATE
= 271,
525 T_GREATER_EQUAL
= 306,
530 * tokens below defined for extension.
532 T_CMNT_STR
= T_TAIL_SUB
+ 1,
533 // [[:alnum:]_] string, started with [[:alpha:]_]
541 * T_STR_LITERAL: "pure c-style string without word combination, // * T_WORD: SH_WORD"string mix with word"ANOTHER_WORD
615 T_GREATER_EQUAL
= 306,
622 T_DEFCONFIG_LIST
= 269,
624 T_DEF_TRISTATE
= 271,
631 T_ALLNOCONFIG_Y
= 261,
636 * T_STATE is used for state switching.
642 * tokens below defined for extension.
644 T_CMNT_STR
= T_TAIL_SUB
+ 1,
645 // [[:alnum:]_] string, started with [[:alpha:]_]
653 * T_STR_LITERAL: "pure c-style string without word combination"
654 * T_WORD: SH_WORD"string mix with word"ANOTHER_WORD
715 /* paired token should be putted together. */
807 T_GREATER_EQUAL
= 288,
817 * tokens below defined for extension.
819 T_CMNT_STR
= T_TAIL_SUB
+ 1,
820 // [[:alnum:]_] string, started with [[:alpha:]_]
828 * T_STR_LITERAL: "pure c-style string without word combination"
829 * T_WORD: SH_WORD"string mix with word"ANOTHER_WORD
842 #endif /* __TOKEN_H */