diff options
Diffstat (limited to 'dice-lang/lang-impl.md')
| -rw-r--r-- | dice-lang/lang-impl.md | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/dice-lang/lang-impl.md b/dice-lang/lang-impl.md new file mode 100644 index 0000000..c6c2ce2 --- /dev/null +++ b/dice-lang/lang-impl.md @@ -0,0 +1,23 @@ +# Language implementation details +First, a command is read from the user, and +checked to see if it has any interpreter pragmas +in it. If so, the interpreter pragma is handled +and we move onto the next command. + +Next, the command is prepared for parsing. +This involves 4 steps +1. Convert the command into tokens +2. Split operators from tokens. This means + converting tokens like 2+2 into the three tokens + 2, + and 2 +3. Deaffix tokens. This means deattaching brackets + and parenthesis from their attached tokens. +4. Remove blank tokens + +Next, is parsing. This is just a modified version +of the shunting-yard algorithm, with the +main modification being it properly handles +multiple nesting levels of parenthesis + +Then, the AST is created from the parsed +string.
\ No newline at end of file |
