Commit Graph

  • f524899da4 lang: lex: convert lexer token queue to b_queue Max Wash 2024-11-24 16:12:06 +00:00
  • ab74c882d1 lang: ast: fill in stub functions for unit and unit-package Max Wash 2024-11-24 16:11:33 +00:00
  • 70aab9998b lang: ast: add ast node size to ast_node_type Max Wash 2024-11-24 11:46:42 +00:00
  • d43e387158 lang: ast: add state size to ast_node_type Max Wash 2024-11-24 11:42:43 +00:00
  • f1ea916155 lang: ast: re-factor parser into multiple files Max Wash 2024-11-24 11:10:42 +00:00
  • a25683ddc9 lang: lex: move all lex enums to their own value ranges Max Wash 2024-11-24 11:10:27 +00:00
  • e71f6a0904 frontend: repl: pass user input through the parser Max Wash 2024-11-23 19:28:26 +00:00
  • ed35011931 lang: ast: implement node, parser, and parser state management Max Wash 2024-11-23 19:28:03 +00:00
  • b630aa009c lang: lex: add function to check if tokens are available Max Wash 2024-11-23 19:27:29 +00:00
  • 54a0c331b2 common: add a status code for internal errors Max Wash 2024-11-23 19:26:29 +00:00
  • 5c5a2d236c lang: ast: add stub parser functions Max Wash 2024-11-23 10:15:40 +00:00
  • 8219797cbb cmake: don't link bluelib modules to their dependencies Max Wash 2024-11-23 10:14:05 +00:00
  • 6f06f42953 lang: add missing includes Max Wash 2024-11-22 22:30:26 +00:00
  • f1be82c495 asm: add missing includes Max Wash 2024-11-22 22:30:15 +00:00
  • ceb9f10b66 lang: add ast node definitions Max Wash 2024-11-22 21:47:37 +00:00
  • 90f96b6229 lang: lex: fix regular number characters not incrementing the token length Max Wash 2024-11-21 20:05:13 +00:00
  • 2d89db48d2 doc: standardise the use of braces, brackets, and parens in asm source Max Wash 2024-11-20 22:15:14 +00:00
  • 230e66e066 asm: lex: add left and right brace symbols Max Wash 2024-11-20 22:15:10 +00:00
  • 17ee2b6b57 frontend: switch to new bluelib tty interface Max Wash 2024-11-20 22:14:35 +00:00
  • 92f407ac09 lang: add colour to internal print functions Max Wash 2024-11-20 22:14:11 +00:00
  • 8df4592a6b frontend: assemble: lex assembly file contents Max Wash 2024-11-19 22:09:54 +00:00
  • adf4e38578 frontend: implement function for printing assembly lex tokens Max Wash 2024-11-19 22:09:32 +00:00
  • 4e8d6e8122 asm: implement asembly lexer Max Wash 2024-11-19 22:08:58 +00:00
  • 605d70d967 doc: add decimal number to sample source file Max Wash 2024-11-19 16:58:44 +00:00
  • 335e360b2d frontend: implement printing integer and double lex tokens Max Wash 2024-11-19 16:57:39 +00:00
  • 6e642b3c19 lang: lex: implement lexing of decimal numbers Max Wash 2024-11-19 16:57:20 +00:00
  • a54a232428 lang: lex: fix underscore label producing two separate tokens Max Wash 2024-11-19 16:17:58 +00:00
  • ea3c01204b frontend: repl: remove line continuations from input produced by line-ed Max Wash 2024-11-19 15:59:05 +00:00
  • b62c048498 frontend: line-ed: fix control characters (\n, \r, etc) being mishandled on win32 Max Wash 2024-11-19 15:58:25 +00:00
  • 1dbe68cfeb lang: lex: add missing symbol and keyword definitions Max Wash 2024-11-19 15:57:31 +00:00
  • 7eab36aa5f frontend: add command for internal debugging functionality Max Wash 2024-11-19 15:22:58 +00:00
  • 7c42bf7bc9 lang: add internal debugging interface Max Wash 2024-11-19 15:22:39 +00:00
  • 881f345bbe lang: lex: move structure definitions to a separate header Max Wash 2024-11-19 15:22:16 +00:00
  • 0f3328565e lang: lex: fix identifier prefixed with underscore being tokenised incorrectly Max Wash 2024-11-19 14:00:42 +00:00
  • eda7a1f951 frontend: line-ed: add missing tty function implementations for linux & darwin Max Wash 2024-11-19 13:00:11 +00:00
  • 4d411c67f0 frontend: line-ed: add missing wchar includes Max Wash 2024-11-19 12:59:52 +00:00
  • 90a32ac1a1 lang: lex: use a dictionary to lookup keywords Max Wash 2024-11-19 10:49:42 +00:00
  • c5f60c285e frontend: line-ed: convert all escape code usage to s_tty calls Max Wash 2024-11-18 21:13:28 +00:00
  • 5a5b0d01d8 lang: lex: only read linefeeds up to the end of the current line buffer Max Wash 2024-11-18 15:19:26 +00:00
  • 96172eac84 frontend: line-ed: move platform-specific code to separate directory Max Wash 2024-11-18 15:15:04 +00:00
  • 29447bf5ec frontend: split interactive and non-interactive modes into separate commands Max Wash 2024-11-18 09:55:02 +00:00
  • d5c86c4eea frontend: move token printing code to a separate file Max Wash 2024-11-18 09:54:27 +00:00
  • 4fc1a6ade8 frontend: add a line editor for shell input Max Wash 2024-11-18 09:53:55 +00:00
  • f44a3364b3 common: add MIN and MAX macros Max Wash 2024-11-18 09:53:35 +00:00
  • 61eabd52c4 lang: lex: replace call to isnumber() with isdigit() Max Wash 2024-11-17 10:58:31 +00:00
  • 6a563da1b0 doc: include dquote strings in Person.im Max Wash 2024-11-17 09:32:49 +00:00
  • c9661af81e frontend: compile: print number and atom token info Max Wash 2024-11-17 09:32:26 +00:00
  • 104e549b32 lang: lex: implement lexing of numbers and atoms Max Wash 2024-11-17 09:31:58 +00:00
  • f55b8f4851 frontend: compile: use new opaque lexer interface Max Wash 2024-11-16 23:05:07 +00:00
  • f14c387a6e lang: lex: implement state stack; make lexer structure opaque Max Wash 2024-11-16 23:03:43 +00:00
  • 412e9abf05 frontend: compile: add colour-coding to token list Max Wash 2024-11-16 23:03:16 +00:00
  • e01798db2f doc: add a note describing lexer state transitions Max Wash 2024-11-16 21:30:45 +00:00
  • 102769735e lang: lex: start implementing strings and interpolation Max Wash 2024-11-16 21:30:32 +00:00
  • 7959dc26a1 Merge branch 'main' of https://github.com/washh/ivy Max Wash 2024-11-16 20:40:32 +00:00
  • 6e5db6a3e2 frontend: compile: print lex token details as they are read Max Wash 2024-11-16 17:06:02 +00:00
  • 00cf226078 lang: lex: implement lexing of symbols, identifiers, labels, keywords, and comments Max Wash 2024-11-16 17:05:29 +00:00
  • 024d317e13 cmake: store all build artifacts in bin/ and lib/ directories Max Wash 2024-11-16 17:04:50 +00:00
  • 5af7aebba7 vim: fix self:: being highlighted as a label rather than a builtin var Max Wash 2024-11-16 17:03:51 +00:00
  • 646a851a10 meta: add msvc support Max Wash 2024-11-14 19:30:36 +00:00
  • 51d7fdfb39 vim: fix consecutive labels not highlighting; add support for class messages Max Wash 2024-11-14 13:13:06 +00:00
  • 53a51c4598 doc: remove internal param names from protocol messages Max Wash 2024-11-14 13:12:28 +00:00
  • 55a8435cd3 doc: add sample package file tree Max Wash 2024-11-13 21:55:32 +00:00
  • 06bf9a3030 meta: rename frontend source directory Max Wash 2024-11-13 21:38:55 +00:00
  • 154b1c4dcc frontend: compile: pass all input files through the lexer Max Wash 2024-11-13 21:37:49 +00:00
  • 6b02a86ba4 lang: implement identifier support in the lexer Max Wash 2024-11-13 21:37:00 +00:00
  • cbd8639605 common: add generic input-line interface, and an implementation of it for text files Max Wash 2024-11-13 21:36:37 +00:00
  • bf2c9c1d90 meta: add internal common library Max Wash 2024-11-12 19:56:02 +00:00
  • d6dea45f52 meta: rename library modules Max Wash 2024-11-12 19:55:47 +00:00
  • e71056f26b meta: add stub compiler, assembler, and runtime libraries Max Wash 2024-11-11 22:25:01 +00:00
  • d77aaefa20 vscode: add keywords, strings, comments, and selector labels to ivy grammar Max Wash 2024-11-11 21:39:22 +00:00
  • a424941481 meta: add vscode language support extension Max Wash 2024-11-11 16:24:23 +00:00
  • 712bdd3e76 vim: add support for word operators, package/use identifier highlighting, slashes in atom names Max Wash 2024-11-10 12:23:44 +00:00
  • 839259cdd7 doc: add and, or, not, is, is not operators Max Wash 2024-11-10 12:22:54 +00:00
  • 8a7198b70b doc: add missing statement separator Max Wash 2024-11-10 12:22:31 +00:00
  • f1e797e6ba doc: change exception handler lambda to take two parameters Max Wash 2024-11-10 12:22:13 +00:00
  • 546d5db4e2 doc: fix package keyword used in for-loop example Max Wash 2024-11-10 12:21:39 +00:00
  • 0b56aa9b27 doc: add -put:at: package syntax example Max Wash 2024-11-10 12:21:12 +00:00
  • acfc811a38 doc: add ! message handler terminator token Max Wash 2024-11-10 12:20:44 +00:00
  • 0603b2f52a doc: add statement separators and one-line message handler support Max Wash 2024-11-08 18:53:19 +00:00
  • 631b19e051 doc: convert more of Person.im to assembly Max Wash 2024-11-08 13:24:37 +00:00
  • 4d4e86be13 doc: add missing self qualifier to (Person) -getAgeInUnits: Max Wash 2024-11-08 13:24:18 +00:00
  • a8340a01f9 vim: add support for asm comments, idents, atoms, and new keywords and index bases Max Wash 2024-11-08 13:19:11 +00:00
  • 78761cd51f doc: document msg instructions; remove duplicate ldr instruction Max Wash 2024-11-08 13:18:23 +00:00
  • e55fdbd0db doc: add const pool to ivy assembly file Max Wash 2024-11-05 22:17:36 +00:00
  • 9323c83b31 vim: add support for ivy assembly language Max Wash 2024-11-05 22:16:50 +00:00
  • fd65b665c4 doc: add assembly source file for Person.im Max Wash 2024-11-05 13:23:16 +00:00
  • 673bb4b9cc doc: add vm instruction for returning nothing Max Wash 2024-11-05 13:22:57 +00:00
  • 2c4c297cde doc: change package getter/setter messages Max Wash 2024-11-05 13:22:40 +00:00
  • 1562b19358 vim: add support for property syntax Max Wash 2024-11-05 13:21:42 +00:00
  • de1aa54fc0 doc: re-design property syntax Max Wash 2024-11-05 13:21:25 +00:00
  • c96d9a4b14 add vim syntax highlighting plugin Max Wash 2024-11-02 15:11:13 +00:00
  • ac92c5317e add existing documentation Max Wash 2024-11-02 15:11:00 +00:00
  • d5c41cbbaa cmd: add separate command for building ivy source and assembly files Max Wash 2024-11-02 11:18:38 +00:00
  • 3b7cf3c10c initial commit Max Wash 2024-11-01 21:41:44 +00:00