summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* eshld: Add runtime libraryP. J. McDermott2016-02-234-24/+257
|
* eshtrans: Add T_LOCALP. J. McDermott2016-02-223-6/+9
|
* eshld/Makefile: New fileP. J. McDermott2016-02-221-0/+21
|
* Add basic eshldP. J. McDermott2016-02-222-0/+215
|
* .gitignore: New fileP. J. McDermott2016-02-221-0/+26
|
* eshtrans/Makefile: New fileP. J. McDermott2016-02-221-0/+27
|
* eshtrans/backend: Add function start/end callsP. J. McDermott2016-02-221-3/+19
|
* eshtrans/frontend: Accept T_RETURNP. J. McDermott2016-02-221-0/+5
|
* eshtrans/frontend: Inject function start/end tokensP. J. McDermott2016-02-221-2/+8
|
* eshtrans/frontend: Add inject() functionP. J. McDermott2016-02-221-0/+9
|
* eshtrans: Add function start/end tokensP. J. McDermott2016-02-221-0/+6
|
* eshtrans/backend: Add support for static vars and functionsP. J. McDermott2016-02-222-0/+64
|
* eshtrans/backend: Generate translation unit IDP. J. McDermott2016-02-225-3/+21
|
* eshtrans: Add proper user interfaceP. J. McDermott2016-02-211-95/+69
|
* Remove old demo parsing codeP. J. McDermott2016-02-214-1838/+0
|
* eshtrans/frontend: Fix line numbersP. J. McDermott2016-02-212-2/+6
|
* eshtrans/frontend: Escape "$" in patternsP. J. McDermott2016-02-211-3/+3
|
* eshtrans: Accept any input fileP. J. McDermott2016-02-211-3/+5
| | | | eshtrans is now able to compile itself.
* eshtrans/frontend: Fix validation patterns in accept()P. J. McDermott2016-02-211-4/+6
|
* eshtrans/frontend: Handle T_IO_NUMBERsP. J. McDermott2016-02-214-3/+34
| | | | Also fix a couple bugs in accept().
* eshtrans/frontend: Don't trim trailing tokens from scannersP. J. McDermott2016-02-212-28/+19
| | | | | | | | | | | | | | | | | | Before we'd get things like this: Input: $(foo bar) Output: $(foo ) Input: $(($(foo bar) + 1)) Output: $(($(foo ) + 1)) Now we get things like this: Input: $(foo bar) Output: $(foo bar ) Input: $(($(foo bar) + 1)) Output: $(($(foo bar ) + 1))
* eshtrans/backend: Don't add a space after "("P. J. McDermott2016-02-212-5/+8
|
* eshtrans/frontend: Count singly quoted newlinesP. J. McDermott2016-02-212-2/+7
|
* eshtrans/frontend: Fix missing ";;"P. J. McDermott2016-02-211-0/+1
| | | | | eshtrans caught an actual syntax error in itself (!), although oddly other shells didn't consider this an error.
* eshtrans/frontend: Fix handling of single quote in double quotesP. J. McDermott2016-02-212-2/+13
|
* eshtrans/frontend: Don't eat char after wordexp in arithmeticP. J. McDermott2016-02-212-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before: Trying script: $(($foo + 1)) Tokens: T_FNAME<US>$(($foo+ 1))<RS>T_NEWLINE<RS>T_EOF<RS> Token: function name "$(($foo+ 1))" Token: newline Token: end of file Generated code: $(($foo+ 1)) Trying script: $((1 + $foo)) stdin:1: Syntax error: Arithmetic expansion: ")" unexpected FAIL After: Trying script: $(($foo + 1)) Tokens: T_FNAME<US>$(($foo + 1))<RS>T_NEWLINE<RS>T_EOF<RS> Token: function name "$(($foo + 1))" Token: newline Token: end of file Generated code: $(($foo + 1)) Trying script: $((1 + $foo)) Tokens: T_FNAME<US>$((1 + $foo))<RS>T_NEWLINE<RS>T_EOF<RS> Token: function name "$((1 + $foo))" Token: newline Token: end of file Generated code: $((1 + $foo))
* eshtrans/frontend: Fix handling of words beginning with "\"P. J. McDermott2016-02-212-14/+42
|
* eshtrans: Add tests with comments and leading linebreaksP. J. McDermott2016-02-211-1/+4
|
* eshtrans/frontend: Accept leading linebreaksP. J. McDermott2016-02-211-0/+1
|
* Copy everything into a new eshtrans/ directoryP. J. McDermott2016-02-218-0/+2003
| | | | | | | Split out and rename functions and variables where appropriate. Also add license headers. (The old scripts under parsing/ can be used under the same license.)
* accept(): Use toktext()P. J. McDermott2016-02-212-5/+7
|
* tokname(): Quote symbolsP. J. McDermott2016-02-211-35/+35
|
* toktext(): Move to tokens.shP. J. McDermott2016-02-212-60/+60
|
* Add a couple more testsP. J. McDermott2016-02-211-1/+3
|
* Don't loop forever on unterminated singly quoted string in wordsP. J. McDermott2016-02-212-7/+14
|
* Improve backslash and quote handling in wordsP. J. McDermott2016-02-212-5/+30
|
* Preserve leading backslashes in wordsP. J. McDermott2016-02-212-3/+9
|
* Remove quotes in here-document delimitersP. J. McDermott2016-02-212-3/+4
|
* Improve demo outputP. J. McDermott2016-02-211-5/+8
|
* Fix handling of newlines with here-documentsP. J. McDermott2016-02-211-12/+8
| | | | | Sequential here-documents were getting indented. Everything after a newline was being considered a here-document.
* Fix handling of multiple here-documents on a lineP. J. McDermott2016-02-212-45/+44
|
* Drop mentions of arithmetic stack elementsP. J. McDermott2016-02-211-5/+1
|
* Don't indent lines in generated codeP. J. McDermott2016-02-211-2/+9
| | | | Doing so can break here-documents.
* Implement here-documentP. J. McDermott2016-02-212-4/+156
| | | | Also fix some I/O redirection operator bugs.
* Implement arithmetic expansionP. J. McDermott2016-02-202-9/+68
|
* Reticulate splinesP. J. McDermott2016-02-201-8/+6
|
* scan_wordexp_param_brace(): New functionP. J. McDermott2016-02-202-123/+137
|
* scan_wordexp(): Catch and rethrow some uncaught exceptionsP. J. McDermott2016-02-201-3/+10
|
* Rewrite codegenP. J. McDermott2016-02-203-18/+78
| | | | | | | | The previous version didn't handle nested or multiple command substitutions. The stack format has also been extended to support arithmetic expansions.
* s/pgetc/lgetc/P. J. McDermott2016-02-201-47/+47
| | | | It reads input characters for the lexer, not the parser.