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