Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | eshtrans/backend: Split tokens array into internal char array | P. J. McDermott | 2016-02-27 | 2 | -7/+38 |
| | | | | Don't read characters one at a time with dd. | ||||
* | eshtrans/frontend: Fix string length param expansions | P. J. McDermott | 2016-02-27 | 1 | -1/+1 |
| | |||||
* | eshtrans/frontend: Use printf in accept() instead of str concat | P. J. McDermott | 2016-02-26 | 1 | -13/+7 |
| | | | | | This results in a very slight performance boost, trading memcpy()s for write()s. | ||||
* | eshtrans/Makefile: Remove dependencies on Makefile | P. J. McDermott | 2016-02-26 | 1 | -4/+4 |
| | |||||
* | eshtrans/Makefile: Make libeshprof optional | P. J. McDermott | 2016-02-26 | 1 | -4/+8 |
| | |||||
* | eshtrans/Makefile: Simplify stage targets | P. J. McDermott | 2016-02-26 | 1 | -8/+2 |
| | |||||
* | eshtrans/Makefile: Don't manage ../libeshprof/hooks.esh | P. J. McDermott | 2016-02-26 | 1 | -6/+6 |
| | |||||
* | eshtrans/frontend: Comment out dbg() and its calls | P. J. McDermott | 2016-02-26 | 1 | -16/+16 |
| | |||||
* | eshtrans/Makefile: Add profiling and indent submake output | P. J. McDermott | 2016-02-24 | 1 | -8/+8 |
| | |||||
* | eshtrans/Makefile.old, eshtrans/bootstrap.sh: Remove | P. J. McDermott | 2016-02-24 | 2 | -44/+0 |
| | |||||
* | eshtrans/Makefile: Handle bootstrapping | P. J. McDermott | 2016-02-24 | 1 | -11/+43 |
| | |||||
* | eshtrans/bootstrap.sh: Fix output and add times | P. J. McDermott | 2016-02-24 | 1 | -6/+6 |
| | |||||
* | eshtrans: Add new bootstrap script | P. J. McDermott | 2016-02-23 | 1 | -0/+16 |
| | |||||
* | eshtrans/Makefile: Build eshtrans with itself | P. J. McDermott | 2016-02-23 | 2 | -4/+30 |
| | | | | The old bootstrapping/stage-one makefile is kept at Makefile.old. | ||||
* | ..Now you don't | P. J. McDermott | 2016-02-23 | 1 | -18/+0 |
| | |||||
* | Pre-eshld three-stage bootstrap script: Now you see it... | P. J. McDermott | 2016-02-23 | 1 | -0/+18 |
| | | | | | | eshtrans was first able to pass a three-stage bootstrap at commit f6e7120 and failed to bootstrap with this script beginning at commit c8148e0 (when the runtime library became required). | ||||
* | eshtrans/backend: Don't write trailing spaces | P. J. McDermott | 2016-02-23 | 1 | -1/+14 |
| | |||||
* | eshtrans/backend: Add static var values array initialization | P. J. McDermott | 2016-02-23 | 1 | -0/+1 |
| | |||||
* | eshtrans/Makefile, eshld/Makefile: Make executables executable | P. J. McDermott | 2016-02-23 | 1 | -0/+1 |
| | |||||
* | eshtrans/backend: Fix names in static function arrays | P. J. McDermott | 2016-02-23 | 1 | -1/+1 |
| | |||||
* | eshtrans/frontend: Inject ";" before __fn_end() call | P. J. McDermott | 2016-02-23 | 1 | -0/+1 |
| | |||||
* | eshtrans/backend: Add __tu_end() call | P. J. McDermott | 2016-02-23 | 2 | -3/+7 |
| | |||||
* | eshtrans/backend: Adjust whitespace after __fn_end | P. J. McDermott | 2016-02-23 | 1 | -1/+4 |
| | |||||
* | eshtrans/backend: Add TU to __fn_start calls | P. J. McDermott | 2016-02-23 | 1 | -2/+3 |
| | |||||
* | eshtrans/backend: Delimit func start/end calls with ";" | P. J. McDermott | 2016-02-23 | 1 | -2/+2 |
| | |||||
* | eshtrans/frontend: Accept any compound command in function body | P. J. McDermott | 2016-02-23 | 1 | -7/+4 |
| | |||||
* | eshtrans: Add T_LOCAL | P. J. McDermott | 2016-02-22 | 3 | -6/+9 |
| | |||||
* | eshtrans/Makefile: New file | P. J. McDermott | 2016-02-22 | 1 | -0/+27 |
| | |||||
* | eshtrans/backend: Add function start/end calls | P. J. McDermott | 2016-02-22 | 1 | -3/+19 |
| | |||||
* | eshtrans/frontend: Accept T_RETURN | P. J. McDermott | 2016-02-22 | 1 | -0/+5 |
| | |||||
* | eshtrans/frontend: Inject function start/end tokens | P. J. McDermott | 2016-02-22 | 1 | -2/+8 |
| | |||||
* | eshtrans/frontend: Add inject() function | P. J. McDermott | 2016-02-22 | 1 | -0/+9 |
| | |||||
* | eshtrans: Add function start/end tokens | P. J. McDermott | 2016-02-22 | 1 | -0/+6 |
| | |||||
* | eshtrans/backend: Add support for static vars and functions | P. J. McDermott | 2016-02-22 | 2 | -0/+64 |
| | |||||
* | eshtrans/backend: Generate translation unit ID | P. J. McDermott | 2016-02-22 | 5 | -3/+21 |
| | |||||
* | eshtrans: Add proper user interface | P. J. McDermott | 2016-02-21 | 1 | -95/+69 |
| | |||||
* | eshtrans/frontend: Fix line numbers | P. J. McDermott | 2016-02-21 | 2 | -2/+6 |
| | |||||
* | eshtrans/frontend: Escape "$" in patterns | P. J. McDermott | 2016-02-21 | 1 | -3/+3 |
| | |||||
* | eshtrans: Accept any input file | P. J. McDermott | 2016-02-21 | 1 | -3/+5 |
| | | | | eshtrans is now able to compile itself. | ||||
* | eshtrans/frontend: Fix validation patterns in accept() | P. J. McDermott | 2016-02-21 | 1 | -4/+6 |
| | |||||
* | eshtrans/frontend: Handle T_IO_NUMBERs | P. J. McDermott | 2016-02-21 | 4 | -3/+34 |
| | | | | Also fix a couple bugs in accept(). | ||||
* | eshtrans/frontend: Don't trim trailing tokens from scanners | P. J. McDermott | 2016-02-21 | 2 | -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. McDermott | 2016-02-21 | 2 | -5/+8 |
| | |||||
* | eshtrans/frontend: Count singly quoted newlines | P. J. McDermott | 2016-02-21 | 2 | -2/+7 |
| | |||||
* | eshtrans/frontend: Fix missing ";;" | P. J. McDermott | 2016-02-21 | 1 | -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 quotes | P. J. McDermott | 2016-02-21 | 2 | -2/+13 |
| | |||||
* | eshtrans/frontend: Don't eat char after wordexp in arithmetic | P. J. McDermott | 2016-02-21 | 2 | -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. McDermott | 2016-02-21 | 2 | -14/+42 |
| | |||||
* | eshtrans: Add tests with comments and leading linebreaks | P. J. McDermott | 2016-02-21 | 1 | -1/+4 |
| | |||||
* | eshtrans/frontend: Accept leading linebreaks | P. J. McDermott | 2016-02-21 | 1 | -0/+1 |
| |