e5d2851c2e
Remove TODO's
...
git-svn-id: https://svn.tlawal.org/svn/monkey@40 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-08-01 05:26:02 +00:00
7e34164019
CallExpression ast, parser and tests completed.
...
git-svn-id: https://svn.tlawal.org/svn/monkey@39 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-08-01 04:58:28 +00:00
c421b040d5
Can now parse FunctionLiteral and its parameters. Tests are also included.
...
git-svn-id: https://svn.tlawal.org/svn/monkey@38 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-07-31 23:31:43 +00:00
1ac48b0cad
Test for IfExpressions, and IfElseExpression
...
git-svn-id: https://svn.tlawal.org/svn/monkey@36 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-07-31 21:55:09 +00:00
a4b75cf9c2
Changes:
...
- Parsing grouped expressions is now possible
- formatting
git-svn-id: https://svn.tlawal.org/svn/monkey@34 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-07-14 12:23:22 +00:00
388700441e
Changes:
...
- Added helper functions to test BooleanLiterals
- Formatting
git-svn-id: https://svn.tlawal.org/svn/monkey@33 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-07-14 12:12:56 +00:00
628a604701
Changes:
...
- Boolean expression can now be parsed.
- Formatting
git-svn-id: https://svn.tlawal.org/svn/monkey@32 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-07-14 07:26:34 +00:00
6597024fff
Helper functions to make testing the AST easier and cleaner.
...
git-svn-id: https://svn.tlawal.org/svn/monkey@31 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-07-14 06:54:26 +00:00
73eeb2001e
git-svn-id: https://svn.tlawal.org/svn/monkey@30 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-07-14 06:24:50 +00:00
d1863830af
Test helpers should be at the bottom.
...
git-svn-id: https://svn.tlawal.org/svn/monkey@29 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-06-12 14:50:08 +00:00
dd030ebd4b
This allows tracing information to be displayed. STRICTLY FOR TESTING ONLY, SHOULD BE TURNED OFF IN THE
...
ACTUAL INTERPRETER.
git-svn-id: https://svn.tlawal.org/svn/monkey@27 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-06-01 14:20:16 +00:00
982efec3d0
- Formatting.
...
- Tracing information now displayed to better visualize how the program works.
git-svn-id: https://svn.tlawal.org/svn/monkey@26 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-05-31 17:38:50 +00:00
e5d95dc7b6
- Infix operator parsing is now possible.
...
git-svn-id: https://svn.tlawal.org/svn/monkey@25 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-05-31 15:01:43 +00:00
2253d6b02c
Parsing prefix expressions, tests passes
...
git-svn-id: https://svn.tlawal.org/svn/monkey@24 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-05-31 11:32:43 +00:00
45f6929c14
Started implementing Pratt Parsing, tests now pass that can generate on Infix and Integer expressions.
...
git-svn-id: https://svn.tlawal.org/svn/monkey@23 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-05-30 17:40:03 +00:00
fdf6a8a552
- Some minor formatting.
...
- Parser can now handle return statements.
git-svn-id: https://svn.tlawal.org/svn/monkey@21 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-05-27 15:07:19 +00:00
58f6bab88f
Clarity.
...
git-svn-id: https://svn.tlawal.org/svn/monkey@20 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-05-26 19:25:31 +00:00
145d61ba57
- The parser can now check for errors.
...
- The test now handles checking for errors.
git-svn-id: https://svn.tlawal.org/svn/monkey@19 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-05-26 19:23:01 +00:00
2e18493a4a
Test now passes, wonder what I did wrong.
...
git-svn-id: https://svn.tlawal.org/svn/monkey@17 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-05-26 17:19:15 +00:00
b8e8fc8b6e
Stubborn bug, could not figure out what causing it. Will just re-write the entire thing.
...
```panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x10 pc=0xbcf660]
goroutine 6 [running]:
testing.tRunner.func1.2({0xbe4c60, 0xce2c10})
C:/Program Files/Go/src/testing/testing.go:1389 +0x24e
testing.tRunner.func1()
C:/Program Files/Go/src/testing/testing.go:1392 +0x39f
panic({0xbe4c60, 0xce2c10})
C:/Program Files/Go/src/runtime/panic.go:838 +0x207
monkey/ast.(*LetStatement).TokenLiteral(0xc000022940?)
D:/monkey/ast/ast.go:37
monkey/parser.testLetStatement(0xc000132000, {0xc32638, 0x0}, {0xc0106a, 0x1})
D:/monkey/parser/parser_test.go:43 +0x49
monkey/parser.TestLetStatements(0xc000132000)
D:/monkey/parser/parser_test.go:36 +0x1ba
testing.tRunner(0xc000132000, 0xc0d940)
C:/Program Files/Go/src/testing/testing.go:1439 +0x102
created by testing.(*T).Run
C:/Program Files/Go/src/testing/testing.go:1486 +0x35f
FAIL monkey/parser 0.180s
FAIL
```
git-svn-id: https://svn.tlawal.org/svn/monkey@16 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-05-26 16:35:08 +00:00
c7dbccbe71
Basic structure of the parser, I now understand what is going on. I think ¯\_(?)_/¯
...
git-svn-id: https://svn.tlawal.org/svn/monkey@14 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-05-24 17:05:02 +00:00
d37bdfa644
Don't understand how it works.
...
git-svn-id: https://svn.tlawal.org/svn/monkey@11 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-05-23 14:25:45 +00:00
0aa17eeee4
git-svn-id: https://svn.tlawal.org/svn/monkey@8 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-05-22 17:26:31 +00:00
cf651aa1b8
ast and parser
...
git-svn-id: https://svn.tlawal.org/svn/monkey@7 f6afcba9-9ef1-4bdd-9b72-7484f5705bac
2022-05-22 06:51:19 +00:00