|
1 | | -# The Lang Programming Language |
| 1 | +# Lang Interpreter |
2 | 2 |
|
3 | | -This project makes simple translation files Turing complete |
| 3 | +The Java reference implementation of the Lang Interpreter |
4 | 4 |
|
5 | 5 | ## Features |
6 | 6 |
|
7 | | -In Lang there a many predefined functions and operators which make development of programs easy. |
8 | | - |
9 | | -### LangShell (REPL) |
10 | | - |
11 | | -The Lang Shell is a REPL shell with syntax highlighting and autocompletes to aid you during development. |
12 | | - |
13 | | -### Combinator functions |
14 | | - |
15 | | -One of the main feature of this programming language is the combinator function system. You can use more than 100 predefined combinator functions. Combinator functions can be created by partially calling and combining combinator functions |
16 | | - |
17 | | -## Lang Modules |
18 | | - |
19 | | -Lang modules can be used to put common code into one library which can be re-used easily. |
20 | | -Here is a list of all existing modules for lang: |
21 | | -- The [Lang Example Native Module](https://github.com/JDDev0/LangExampleNativeModule) is a reference implementation of a Lang native module. It can be used as a base for creating new modules. |
22 | | -- The [Lang IO Module](https://github.com/JDDev0/LangIOModule) is a Lang native module providing basic IO operations for files. |
23 | | - |
24 | | -### Native Lang Modules |
25 | | - |
26 | | -Lang modules can contain native code (In the standard Lang implementation native code is Java code). In the [Lang Example Native Module](https://github.com/JDDev0/LangExampleNativeModule) repository a build script can be found in order to create modules containing nativ code easily. |
27 | | - |
28 | | -## Docs and examples |
29 | | - |
30 | | -**Language definitions**: See the Lang docs repository for details: [Lang Docs](https://github.com/lang-programming/docs) and checkout the .lang files located in /assets/<br> |
31 | | -**Language Tutorial**: You can find many tutorial Lang files in /assets/tuts/.<br> |
32 | | -**Language code examples**: Some examples are in /assets/examples/, many more are on [Rosetta Code](https://rosettacode.org/wiki/lang).<br> |
33 | | - |
34 | | -## "TermIO-Control" window commands |
35 | | - |
36 | | -**Execution of Lang file**: Type "executeLang -*Path to .lang file*" in the white text input in the "TermIO-Control" window<br> |
37 | | -**LangShell** (REPL): Type "startShell" in the white text input in the "TermIO-Control" window<br> |
38 | | -**Print AST tree**: Type "printAST -*Path to .lang file*" for parsing a Lang file and printing the parsed AST tree<br> |
39 | | -**4K-Support**: Type "toggle4k" for a larger font in the "TermIO-Control" window and the "LangShell" window<br> |
40 | | - |
41 | | -### "TermIO-Control" window commands from terminal/console |
42 | | - |
43 | | -You can also run "java -jar Lang.jar -**command** **args**" in a terminal or console.<br> |
44 | | -If "-e CODE" is used in Linux single quotes should be used for the CODE argument to prevent the shell from parsing $-shell variables and to enable multiline code execution (e.g. "java -jar Lang.jar -e '$a = test<br> |
45 | | -func.println($a)')<br> |
46 | | -You can use the "-log" argument to enable log file logging<br> |
47 | | - |
| 7 | +- All Lang standard language features |
| 8 | +- Support for Java Native Modules and Native Functions |
0 commit comments