Commit Graph

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