Commit Graph

27 Commits

Author SHA1 Message Date
a28874145c lang: lex: add diagnostic support 2025-05-08 20:31:55 +01:00
1c3aff9ad3 lang: add start/end coordinates to lexer tokens 2025-04-28 22:53:21 +01:00
cbec21b90f lang: implement elif keyword for more complex if-statements 2025-04-24 09:45:26 +01:00
e430b7b2f1 lang: add var keyword for variable declarations
the var keyword allows greater control over what scope a
particular variable exists in. it clarifies whether a new
variable is being defined or an existing variable is being
assigned to. it will also facilitate the implementation of
global variables.
2025-04-15 11:02:47 +01:00
2235f9c0a9 lang: change symbols for properties and atoms to -> and $ respectively 2025-04-10 13:04:12 +01:00
0c500dc19b lang: lex: add function for creating fake ident tokens 2025-03-26 21:09:50 +00:00
fa33336ed7 lang: lex: add finally keyword 2025-01-16 13:13:08 +00:00
d2677e2038 lang: lex: add hen keyword 2024-12-04 16:34:40 +00:00
c7e3cea9b9 lang: lex: add definitions for some missing symbols and keywords 2024-11-27 22:28:17 +00:00
a5c0606221 lang: lex: fix push_token not setting lex_prev_token 2024-11-27 12:56:39 +00:00
f524899da4 lang: lex: convert lexer token queue to b_queue 2024-11-24 16:12:06 +00:00
b630aa009c lang: lex: add function to check if tokens are available
if this function returns false, any attempt to read tokens from the lexer will cause another line of input to be retrieved from the lexer's line source.
2024-11-23 19:27:29 +00:00
6f06f42953 lang: add missing includes 2024-11-22 22:30:26 +00:00
90f96b6229 lang: lex: fix regular number characters not incrementing the token length 2024-11-21 20:05:13 +00:00
6e642b3c19 lang: lex: implement lexing of decimal numbers 2024-11-19 16:57:20 +00:00
a54a232428 lang: lex: fix underscore label producing two separate tokens 2024-11-19 16:17:58 +00:00
1dbe68cfeb lang: lex: add missing symbol and keyword definitions 2024-11-19 15:57:31 +00:00
881f345bbe lang: lex: move structure definitions to a separate header 2024-11-19 15:22:16 +00:00
0f3328565e lang: lex: fix identifier prefixed with underscore being tokenised incorrectly 2024-11-19 14:00:42 +00:00
90a32ac1a1 lang: lex: use a dictionary to lookup keywords 2024-11-19 10:49:42 +00:00
5a5b0d01d8 lang: lex: only read linefeeds up to the end of the current line buffer 2024-11-18 15:19:26 +00:00
61eabd52c4 lang: lex: replace call to isnumber() with isdigit() 2024-11-17 10:58:31 +00:00
104e549b32 lang: lex: implement lexing of numbers and atoms 2024-11-17 09:31:58 +00:00
f14c387a6e lang: lex: implement state stack; make lexer structure opaque
the state stack is used to track whether a string is currently being read,
what kind of string it is, and whether or not we are in an interpolation
within that string.
2024-11-16 23:03:43 +00:00
102769735e lang: lex: start implementing strings and interpolation 2024-11-16 21:30:32 +00:00
00cf226078 lang: lex: implement lexing of symbols, identifiers, labels, keywords, and comments 2024-11-16 17:05:29 +00:00
6b02a86ba4 lang: implement identifier support in the lexer 2024-11-13 21:37:00 +00:00