diff options
author | P. J. McDermott <pj@pehjota.net> | 2016-02-21 21:13:33 (EST) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2016-02-21 21:13:33 (EST) |
commit | 8a9a6865954ade85d4a55f955829ae08941c31b8 (patch) | |
tree | 966d1c1a8bc4c6f7ed0671b8c53f1272be77dc4f /parsing/codegen.sh | |
parent | 5649a9aa1ce56c0cfdcab088983f2d3a4cb32a4c (diff) | |
download | eggshell-8a9a6865954ade85d4a55f955829ae08941c31b8.zip eggshell-8a9a6865954ade85d4a55f955829ae08941c31b8.tar.gz eggshell-8a9a6865954ade85d4a55f955829ae08941c31b8.tar.bz2 |
Remove old demo parsing code
Diffstat (limited to 'parsing/codegen.sh')
-rw-r--r-- | parsing/codegen.sh | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/parsing/codegen.sh b/parsing/codegen.sh deleted file mode 100644 index 8d9d2fd..0000000 --- a/parsing/codegen.sh +++ /dev/null @@ -1,85 +0,0 @@ -sc= - -sgetc() -{ - sc="$(dd bs=1 count=1 2>/dev/null; printf '.')" - sc="${sc%.}" -} - -codegen_sub() -{ - local array="${1}" - shift 1 - - IFS="${RS}" - for t in ${array}; do - toktext "${t}" - case "${t%${US}*}" in - T_NEWLINE) - ;; - *) - printf ' ' - ;; - esac - done - unset IFS -} - -# The token stack is encoded in a string in the following grammar: -# Terminal symbols: -# TOKEN -# Production rules: -# stack = tokens [ '<SOH>' type '<STX>' stack '<ETX>' [ tokens ] ] ; -# tokens = TOKEN { '<RS>' TOKEN } ; -# type = 'C' ; -# We need to recurse through this stack to get to all the tokens. -# Each element in the stack (an array of tokens) gets run through the codegen to -# become text that is inserted into the array below. -parse_stack() -{ - local array= - - array='' - while :; do - sgetc - case "${sc}" in - '') - # EOF - break - ;; - "${SOH}") - # New stack element - sgetc - case "${sc}" in - 'C') - # Command substitution - sgetc # STX - array="${array}$(parse_stack)." - array="${array%.}" - ;; - esac - ;; - "${ETX}") - # End of stack element - break - ;; - *) - # Token character - array="${array}${sc}" - ;; - esac - done - codegen_sub "${array}" -} - -codegen() -{ - local toks="${1}" - shift 1 - - if printf '%s' "${toks}" | parse_stack; then - return 0 - else - return 1 - fi -} |