From 8a9a6865954ade85d4a55f955829ae08941c31b8 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sun, 21 Feb 2016 21:13:33 -0500 Subject: Remove old demo parsing code --- (limited to 'parsing/codegen.sh') 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 [ '' type '' stack '' [ tokens ] ] ; -# tokens = TOKEN { '' 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 -} -- cgit v0.9.1