├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── Makefile ├── README.md ├── batsh.opam ├── dune-project ├── lib ├── bash.ml ├── bash.mli ├── bash_ast.ml ├── bash_compile.ml ├── bash_format.ml ├── bash_functions.ml ├── bash_transform.ml ├── batsh_ast.ml ├── batsh_format.ml ├── batsh_lib.ml ├── dune ├── errors.ml ├── errors.mli ├── formatutil.ml ├── lexer.mll ├── parser.ml ├── parser.mli ├── parser_yacc.mly ├── semantic_checker.ml ├── symbol_table.ml ├── symbol_table.mli ├── winbat.ml ├── winbat.mli ├── winbat_ast.ml ├── winbat_compile.ml ├── winbat_format.ml ├── winbat_functions.ml └── winbat_transform.ml ├── scripts └── update.js ├── src ├── batsh.ocp ├── dune ├── main.ml └── version.ml ├── test_scripts ├── arith.batsh ├── array.batsh ├── assignment.batsh ├── bash │ ├── arith.sh │ ├── array.sh │ ├── assignment.sh │ ├── block.sh │ ├── command.sh │ ├── comment.sh │ ├── exists.sh │ ├── function.sh │ ├── if.sh │ ├── recursion.sh │ ├── string.sh │ └── while.sh ├── batch │ ├── arith.bat │ ├── array.bat │ ├── assignment.bat │ ├── block.bat │ ├── command.bat │ ├── comment.bat │ ├── exists.bat │ ├── function.bat │ ├── if.bat │ ├── recursion.bat │ ├── string.bat │ └── while.bat ├── block.batsh ├── command.batsh ├── comment.batsh ├── exists.batsh ├── function.batsh ├── if.batsh ├── output │ ├── arith.txt │ ├── array.txt │ ├── assignment.txt │ ├── block.txt │ ├── command.txt │ ├── comment.txt │ ├── exists.txt │ ├── function.txt │ ├── if.txt │ ├── recursion.txt │ ├── string.txt │ └── while.txt ├── recursion.batsh ├── string.batsh └── while.batsh └── tests ├── dune └── main.ml /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/.gitignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/.travis.yml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/README.md -------------------------------------------------------------------------------- /batsh.opam: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/batsh.opam -------------------------------------------------------------------------------- /dune-project: -------------------------------------------------------------------------------- 1 | (lang dune 1.11) 2 | (using menhir 2.0) 3 | -------------------------------------------------------------------------------- /lib/bash.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/bash.ml -------------------------------------------------------------------------------- /lib/bash.mli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/bash.mli -------------------------------------------------------------------------------- /lib/bash_ast.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/bash_ast.ml -------------------------------------------------------------------------------- /lib/bash_compile.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/bash_compile.ml -------------------------------------------------------------------------------- /lib/bash_format.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/bash_format.ml -------------------------------------------------------------------------------- /lib/bash_functions.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/bash_functions.ml -------------------------------------------------------------------------------- /lib/bash_transform.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/bash_transform.ml -------------------------------------------------------------------------------- /lib/batsh_ast.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/batsh_ast.ml -------------------------------------------------------------------------------- /lib/batsh_format.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/batsh_format.ml -------------------------------------------------------------------------------- /lib/batsh_lib.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/batsh_lib.ml -------------------------------------------------------------------------------- /lib/dune: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/dune -------------------------------------------------------------------------------- /lib/errors.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/errors.ml -------------------------------------------------------------------------------- /lib/errors.mli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/errors.mli -------------------------------------------------------------------------------- /lib/formatutil.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/formatutil.ml -------------------------------------------------------------------------------- /lib/lexer.mll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/lexer.mll -------------------------------------------------------------------------------- /lib/parser.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/parser.ml -------------------------------------------------------------------------------- /lib/parser.mli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/parser.mli -------------------------------------------------------------------------------- /lib/parser_yacc.mly: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/parser_yacc.mly -------------------------------------------------------------------------------- /lib/semantic_checker.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/semantic_checker.ml -------------------------------------------------------------------------------- /lib/symbol_table.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/symbol_table.ml -------------------------------------------------------------------------------- /lib/symbol_table.mli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/symbol_table.mli -------------------------------------------------------------------------------- /lib/winbat.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/winbat.ml -------------------------------------------------------------------------------- /lib/winbat.mli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/winbat.mli -------------------------------------------------------------------------------- /lib/winbat_ast.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/winbat_ast.ml -------------------------------------------------------------------------------- /lib/winbat_compile.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/winbat_compile.ml -------------------------------------------------------------------------------- /lib/winbat_format.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/winbat_format.ml -------------------------------------------------------------------------------- /lib/winbat_functions.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/winbat_functions.ml -------------------------------------------------------------------------------- /lib/winbat_transform.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/lib/winbat_transform.ml -------------------------------------------------------------------------------- /scripts/update.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/scripts/update.js -------------------------------------------------------------------------------- /src/batsh.ocp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/src/batsh.ocp -------------------------------------------------------------------------------- /src/dune: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/src/dune -------------------------------------------------------------------------------- /src/main.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/src/main.ml -------------------------------------------------------------------------------- /src/version.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/src/version.ml -------------------------------------------------------------------------------- /test_scripts/arith.batsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/arith.batsh -------------------------------------------------------------------------------- /test_scripts/array.batsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/array.batsh -------------------------------------------------------------------------------- /test_scripts/assignment.batsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/assignment.batsh -------------------------------------------------------------------------------- /test_scripts/bash/arith.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/bash/arith.sh -------------------------------------------------------------------------------- /test_scripts/bash/array.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/bash/array.sh -------------------------------------------------------------------------------- /test_scripts/bash/assignment.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/bash/assignment.sh -------------------------------------------------------------------------------- /test_scripts/bash/block.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/bash/block.sh -------------------------------------------------------------------------------- /test_scripts/bash/command.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/bash/command.sh -------------------------------------------------------------------------------- /test_scripts/bash/comment.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/bash/comment.sh -------------------------------------------------------------------------------- /test_scripts/bash/exists.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/bash/exists.sh -------------------------------------------------------------------------------- /test_scripts/bash/function.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/bash/function.sh -------------------------------------------------------------------------------- /test_scripts/bash/if.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/bash/if.sh -------------------------------------------------------------------------------- /test_scripts/bash/recursion.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/bash/recursion.sh -------------------------------------------------------------------------------- /test_scripts/bash/string.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/bash/string.sh -------------------------------------------------------------------------------- /test_scripts/bash/while.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/bash/while.sh -------------------------------------------------------------------------------- /test_scripts/batch/arith.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/batch/arith.bat -------------------------------------------------------------------------------- /test_scripts/batch/array.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/batch/array.bat -------------------------------------------------------------------------------- /test_scripts/batch/assignment.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/batch/assignment.bat -------------------------------------------------------------------------------- /test_scripts/batch/block.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/batch/block.bat -------------------------------------------------------------------------------- /test_scripts/batch/command.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/batch/command.bat -------------------------------------------------------------------------------- /test_scripts/batch/comment.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/batch/comment.bat -------------------------------------------------------------------------------- /test_scripts/batch/exists.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/batch/exists.bat -------------------------------------------------------------------------------- /test_scripts/batch/function.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/batch/function.bat -------------------------------------------------------------------------------- /test_scripts/batch/if.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/batch/if.bat -------------------------------------------------------------------------------- /test_scripts/batch/recursion.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/batch/recursion.bat -------------------------------------------------------------------------------- /test_scripts/batch/string.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/batch/string.bat -------------------------------------------------------------------------------- /test_scripts/batch/while.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/batch/while.bat -------------------------------------------------------------------------------- /test_scripts/block.batsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/block.batsh -------------------------------------------------------------------------------- /test_scripts/command.batsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/command.batsh -------------------------------------------------------------------------------- /test_scripts/comment.batsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/comment.batsh -------------------------------------------------------------------------------- /test_scripts/exists.batsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/exists.batsh -------------------------------------------------------------------------------- /test_scripts/function.batsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/function.batsh -------------------------------------------------------------------------------- /test_scripts/if.batsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/if.batsh -------------------------------------------------------------------------------- /test_scripts/output/arith.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/output/arith.txt -------------------------------------------------------------------------------- /test_scripts/output/array.txt: -------------------------------------------------------------------------------- 1 | 18 y abx 1 518 2 | 1 2 3 3 | 202 4 | 3 5 | 24 6 | -------------------------------------------------------------------------------- /test_scripts/output/assignment.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/output/assignment.txt -------------------------------------------------------------------------------- /test_scripts/output/block.txt: -------------------------------------------------------------------------------- 1 | Hello 2 | Lo 3 | and behold 4 | End 5 | -------------------------------------------------------------------------------- /test_scripts/output/command.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/output/command.txt -------------------------------------------------------------------------------- /test_scripts/output/comment.txt: -------------------------------------------------------------------------------- 1 | 15 2 | -------------------------------------------------------------------------------- /test_scripts/output/exists.txt: -------------------------------------------------------------------------------- 1 | 1 2 | Yes 3 | No 4 | -------------------------------------------------------------------------------- /test_scripts/output/function.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/output/function.txt -------------------------------------------------------------------------------- /test_scripts/output/if.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/output/if.txt -------------------------------------------------------------------------------- /test_scripts/output/recursion.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/output/recursion.txt -------------------------------------------------------------------------------- /test_scripts/output/string.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/output/string.txt -------------------------------------------------------------------------------- /test_scripts/output/while.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/output/while.txt -------------------------------------------------------------------------------- /test_scripts/recursion.batsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/recursion.batsh -------------------------------------------------------------------------------- /test_scripts/string.batsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/string.batsh -------------------------------------------------------------------------------- /test_scripts/while.batsh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/test_scripts/while.batsh -------------------------------------------------------------------------------- /tests/dune: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/tests/dune -------------------------------------------------------------------------------- /tests/main.ml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/batsh-dev-team/Batsh/HEAD/tests/main.ml --------------------------------------------------------------------------------