Sasha Koshka
3407aa7c59
Fixed lexing digraph tokens
...
Lexer gave wrong token locations and would skip an extra rune when digraph was
not found.
2022-08-16 20:29:00 -04:00
Sasha Koshka
9e01eef45b
Added elipsis token
2022-08-16 20:24:27 -04:00
Sasha Koshka
efb3bbe21b
Added base for parsing initialization values
2022-08-16 20:10:47 -04:00
Sasha Koshka
c172c111d8
Rethought how object and array literals will work
2022-08-16 17:45:31 -04:00
Sasha Koshka
16bca57e36
Fixed numerous problems related to type parsing
2022-08-16 17:21:10 -04:00
Sasha Koshka
5e2d8c9955
Parser can now ToString data sections properly
2022-08-16 16:37:20 -04:00
Sasha Koshka
5c23c59c92
Added parsing primitive arguments
2022-08-16 16:27:52 -04:00
Sasha Koshka
0025d03a18
Modified parser data test to have uninitialized pointer cases
2022-08-16 16:16:39 -04:00
Sasha Koshka
45bc798d19
Added identifier and declaration parsing
2022-08-16 15:53:32 -04:00
Sasha Koshka
9cb2f68581
Argument kind is now called .kind instead of .what
2022-08-16 15:50:34 -04:00
Sasha Koshka
4dfb327558
Add subscript and dereference argument kinds
2022-08-16 13:43:36 -04:00
Sasha Koshka
f978621673
Parse basic information about data sections (name, type)
2022-08-16 10:44:02 -04:00
Sasha Koshka
ac40fa96e5
Improved parser test
...
Created new cases involving mutable data and phrase initialization arguments,
and always print out the correct and parsed trees.
2022-08-16 01:55:22 -04:00
Sasha Koshka
85b7938843
ParseBody now has a loop, and errors on unrecognized section type
2022-08-15 21:20:13 -04:00
Sasha Koshka
d081f363b1
Add guideline I forgot to add earlier
2022-08-15 17:21:34 -04:00
Sasha Koshka
e42bad5810
Identifiers can no longer have arguments in them
...
Previously [[something something].something] would have been syntactically
correct. This can lead to ugly and cluttered syntax due to violating the one
thing per line guideline (that I've forgotten to write down) and would make the
parser incredibly convoluded. Member selection in arf is not an operator and
should not be treated as such. It would be much better to just use variables for
this.
2022-08-15 17:05:57 -04:00
Sasha Koshka
614b5664fc
Parser calls ParseDataSection
2022-08-15 15:09:07 -04:00
Sasha Koshka
8b28fe5a4c
Added a comma token
2022-08-15 14:50:09 -04:00
Sasha Koshka
608162fa92
Fixed bug in number lexing function that prevented reading zero
2022-08-15 14:42:32 -04:00
Sasha Koshka
d27c0ff07c
Added single digit zero and eight to lexer number test
2022-08-15 14:32:59 -04:00
Sasha Koshka
7fc51c278f
Fixed issue with Error.Error not positioning marker correctly
2022-08-15 14:30:54 -04:00
Sasha Koshka
3a3c588023
Added data test
2022-08-15 14:23:53 -04:00
Sasha Koshka
00bcfaab0b
Parser tests now work by checking the ToString() of the parsed tree
2022-08-15 14:17:29 -04:00
Sasha Koshka
d91423863b
Added ToString methods for syntax tree nodes
2022-08-15 14:04:57 -04:00
Sasha Koshka
b02ff6cda6
Created structs needed to represent a data section
2022-08-15 01:47:42 -04:00
Sasha Koshka
0a067524ce
Added base parse body function
2022-08-14 22:38:57 -04:00
sashakoshka
8f42fa9c2a
Add some more guidelines to readme
2022-08-12 20:32:58 -04:00
714aca5196
Fix parseMeta not getting enough tokens
...
Parser now passes TestMeta
2022-08-12 17:12:38 -05:00
033e64fc54
Parser can now print out a list of expected token kinds
2022-08-12 17:09:37 -05:00
b3071d4ac9
Token kind values can now be described
2022-08-12 16:30:32 -05:00
f23c3a234a
Added metadata parser
2022-08-12 16:22:51 -05:00
856d5763d3
Lexer tokens are now created by the lexer
...
This is so positional information can be accurately embedded into them.
2022-08-12 14:34:07 -05:00
accf528869
Locations and tokens are now capable of creating errors on their own
2022-08-12 13:51:38 -05:00
7914f0df45
Location now stores width instead of Error
2022-08-12 13:43:09 -05:00
050c956787
Added expect and nextToken methods to parser
2022-08-12 13:33:21 -05:00
18bd681082
Parser now understands the separation between files
...
This needs to be done because each file has a metadata section at the top.
2022-08-12 12:02:20 -05:00
2019c67bbb
Created basic test for parser
2022-08-12 11:55:17 -05:00
f4f19a809a
Lexer now eats :arf symbol at file beginning
2022-08-12 10:38:23 -05:00
c09c9860b8
Parser tests are now arf files
2022-08-12 10:26:16 -05:00
81b47f7734
Replaced all occurences of github.com with git.tebibyte.media
2022-08-12 10:21:36 -05:00
09170e390d
Created base for parser
...
The parser now handles file opening and invokes the lexer.
2022-08-12 10:11:43 -05:00
5a55c9ac87
Check off lexer in readme
2022-08-11 18:37:00 -05:00
31a2d84483
Removed erroneous indentation from indent test file
...
Need to find a more controlled and accurate way to test erroneous indentation.
Possibly by analyzing the returned error object.
2022-08-11 18:34:02 -05:00
2a7111e700
Colored error line/column numbers as well
2022-08-11 13:16:59 -05:00
dfa64f3c3d
Added color to errors
2022-08-11 13:15:57 -05:00
ee9fa3a766
Indentation tokens now carry their indentation level
...
They are no longer stored in sequence
2022-08-11 12:53:20 -05:00
471eb863f4
Created indent test
2022-08-11 12:47:50 -05:00
71157122d6
Added support for hex, octal, and unicode escape sequences
2022-08-11 12:39:49 -05:00
f7a823687e
Added new test for string and rune literals (which it passes)
2022-08-11 12:12:41 -05:00
4f37715a8c
Hexidecimal numbers are now properly read
2022-08-11 04:25:56 -05:00