AQStack test code.
[reglxgmr.git] / doc / todolist.txt
blobd7a37442b5a2dfc8e4fbe80f7e8efb2a4e95778c
2 [ideas]
3 @ reference about arch of ShellCheck, it implement a language Parser.
4 @ reference about regex-tdfa, mtl, parsec
5 # DSL(ÁìÓòÌض¨ÓïÑÔ)(Domain Specific Languages)
6 # tagged DFA, 
7 # EBNF(Extended Backus Naur Form)
8 @ http://vlpp.codeplex.com/, vczh, a runtime parser & data-proc lib.
10 [todolist]
12 @ TokenDef
13 # sample
14 # fmt
15 # script
16 # compile
17 # compact (idxptr)
18 # srcfmt(lang)/srcfile/iptsrc
20 @ Token (word/punct/rsvwd, cmntblock/strblock, subst(word/str)/codeblock/envar/subst)
21 # seq-stick
22 # nest-stick
23 # testing
25 @ Token Output Fmt.
27 =========================================================================
29 @ token stick code(word/str/subst/env/exprblock/scriptblock)
30 =       # concept trim to designdoc
31         # subst-stick() in TokenParser.c
32           + seq-token-stick
33           + nest-token-stick
34             - define vtoken id for desc.
35             - DESC_xxx replaced with token id.
36                 - use SUBST_STR_DESC for codeblock & subst. maybe this name should
37                   be modified to TXT_BLK_DESC.
38           + token type trim
39             - combinable token(flag)
40                 - RSV-WD token(group)
41                 - token data is NULL
42                 - token data is TokenDesc in state data
43                 - token data is strbuff
44                 - token data is state data
45                 - on_sh_cmnt_proc()@cmntblock.c, OnSeqTokenProc()@TokenProc.c,
46                   token data with strbuff translate to state data,
47                   for some token like comment/`cmd`/$'string'.
48           + ??? use BLOCK_DESC instead of STR_BUFF, decrease token data type.
49           + due to the modification of token data from state to parser, the 
50             original code invoke FREE_DESC() for state data.
51           + bugs:
52                 - 
53         # elem return & data. 
54           retval(T_WORD/T_SUBST_STR/T_SKIP/T_ENVAR/T_SCRIPT/T_EXPR)
55         # token-stick(word/str/subst)
56         # testing
58         # recognize "%" punct in code state.
60 @ subst parsing(envar/codeblock)
61         # envar(param)
62         # code trim: state, memfree, dbgout-info
64 @ codeblock
65         # subst block
66         # ()/[]/{} detect
67         # ENTER/EXIT token gen
69 @ testing
70         # Fundamental/MacroCmnt/Subst testing
71           + c89 cmnt (blank, strbuff)
72         
73 =========================================================================
75 @ token define
76         # src fmt
77           + define misc token for desc. desc type use token to set.
78           + same token in different lang-set(group) by setting lang flag.
79           + use ':=' for envar assignment, instead of '='.
80         # script.sh
81 @ token(tokendef, group, type, flag ...)
82 @ define flag in runtime
85 =========================================================================
89 @ token output format (token-print/colorfull/syntax)
90 @ cmd opt
91         # -vh ... opt proc func.
93 @ unit test
94 + check example
95 + charset/input/strbuff/AQStack
97 @ other misc
98         # compiler bit width detect/MACRO
101 @ arch(srcfmt/lang/IptSrc)