Commit Graph

548 Commits

Author SHA1 Message Date
Sasha Koshka
498df4fad8 Parser now includes positional information in toplevels 2024-02-08 12:52:47 -05:00
Sasha Koshka
19ba849e4b Bring analyzer tests up to date as much as possible 2024-02-08 12:49:17 -05:00
Sasha Koshka
ba52a2df2e Change interface prefix from ? to ~
? will eventually be used in place of * to denote an optional
pointer, and ~ already means "approximation", which works well for
a polymorphic data structure.
2024-02-08 04:10:11 -05:00
Sasha Koshka
cb7180fa1c Remove rouge println in parser 2024-02-08 04:00:25 -05:00
Sasha Koshka
c9fa465430 Off by one error oh my god 2024-02-08 03:58:29 -05:00
Sasha Koshka
9e815d0bea Updated analyzer's test-common.go 2024-02-08 03:56:09 -05:00
Sasha Koshka
5bb9508a76 Rework analyzer code to fit new parser 2024-02-08 03:51:21 -05:00
090d52b8f8 Merge pull request 'parser-remove-participle' (#7) from parser-remove-participle into remove-participle
Reviewed-on: sashakoshka/fspl#7
2024-02-08 08:29:23 +00:00
Sasha Koshka
95e12d6d19 Parse namespaced function calls 2024-02-08 03:28:09 -05:00
Sasha Koshka
202fd1f0bc Bring most tests up to date 2024-02-08 03:13:40 -05:00
Sasha Koshka
ef7be1f7e8 Parse member access, assignment, method calls 2024-02-08 03:10:02 -05:00
Sasha Koshka
68b144a2df Loll oops 2024-02-08 02:22:57 -05:00
Sasha Koshka
be314a1b79 Unify entity.Statement and entity.Expression 2024-02-08 02:22:19 -05:00
Sasha Koshka
95118a183b Relaxed unneeded rules on AST 2024-02-08 02:19:00 -05:00
Sasha Koshka
227a329538 Parse bit and value casts 2024-02-08 01:54:29 -05:00
Sasha Koshka
e1ae32278f Parse reference operations 2024-02-08 01:37:36 -05:00
Sasha Koshka
335060ce84 Parse length operations 2024-02-08 01:33:55 -05:00
Sasha Koshka
99d4799883 Parse slice operations 2024-02-08 01:29:16 -05:00
Sasha Koshka
de1f873929 Struct literals print correctly 2024-02-08 00:56:43 -05:00
Sasha Koshka
b715dbcce3 Parse operations 2024-02-08 00:50:54 -05:00
Sasha Koshka
e9348ea58f Added string constructor for entity.Operator 2024-02-08 00:29:24 -05:00
Sasha Koshka
5fad8a79dd Re-organize the position of parsing functions in expression.go 2024-02-08 00:16:39 -05:00
Sasha Koshka
a0a155c7e6 Parse dereferences and subscripts 2024-02-08 00:14:52 -05:00
Sasha Koshka
1cdc14a313 Lowercased entity descriptions 2024-02-07 22:58:58 -05:00
Sasha Koshka
e4c8268e18 Moved parser expression decision tree diagram to expression.go
Because having ASCII flowcharts in comments makes any code base at
least 20% cooler.
2024-02-07 22:53:10 -05:00
Sasha Koshka
1bf47a9ebe Parse function calls 2024-02-07 22:49:11 -05:00
Sasha Koshka
78786f4ea2 Parse break and return expressions 2024-02-07 22:33:33 -05:00
Sasha Koshka
116a687099 Decision tree infrastructure for LBracket branch 2024-02-07 20:03:18 -05:00
Sasha Koshka
e0c62e40bf Parse struct literals 2024-02-07 19:48:01 -05:00
Sasha Koshka
1a4bade4dd Parse blocks 2024-02-07 19:24:57 -05:00
Sasha Koshka
b17ffdc6d9 Update expression-decision-tree 2024-02-07 19:17:25 -05:00
Sasha Koshka
30d479565b Fix parsing integer 0 2024-02-07 19:16:05 -05:00
Sasha Koshka
f997254270 Parse array literals 2024-02-07 19:14:39 -05:00
Sasha Koshka
2882a28621 Update expression-decision-tree 2024-02-07 18:27:10 -05:00
Sasha Koshka
ac83753c56 Parse if/else expressions 2024-02-07 18:25:42 -05:00
Sasha Koshka
be35cda999 Parse loops 2024-02-07 18:11:12 -05:00
Sasha Koshka
161ee28e7b Move literal parsing routines to a separate file 2024-02-07 18:01:14 -05:00
Sasha Koshka
c1df3f5ae5 Add stars in expression-decision-tree to mark what isn't done 2024-02-07 17:57:39 -05:00
Sasha Koshka
8cd0871939 Fix expression parsing control flow 2024-02-07 17:51:44 -05:00
Sasha Koshka
ea8d5e6b3a Add parsing boolean and nil literals 2024-02-07 17:25:00 -05:00
Sasha Koshka
87c6490183 Fix commaList 2024-02-07 17:09:35 -05:00
Sasha Koshka
4a3e06362d What crack was I smoking when I made LiteralNil.Value 2024-02-07 15:46:42 -05:00
Sasha Koshka
ed239aabb9 Remove entity.Boolean because I have overcome my haters 2024-02-07 15:41:48 -05:00
Sasha Koshka
854abfed1c Broke out Parser.parseVariable() for consistency 2024-02-07 15:36:33 -05:00
Sasha Koshka
d445743200 Add parsing int, float, and string literals 2024-02-07 14:15:06 -05:00
Sasha Koshka
a47023fc95 Declaration and variable expression parsing 2024-02-07 13:26:25 -05:00
Sasha Koshka
16f27cd2ee Parser panic information is now more detailed 2024-02-07 13:01:25 -05:00
Sasha Koshka
cc8426bf85 Add tokens to startTokensExpression 2024-02-07 12:50:19 -05:00
Sasha Koshka
531d3ca22b Created an expression decision tree plan 2024-02-07 12:44:54 -05:00
Sasha Koshka
51ef3682f1 Function headings are now parsed correctly 2024-02-07 11:38:15 -05:00