Commit Graph

  • 504fea6d9e lang: ast: fix expr type not being set when parsing a lambda Max Wash 2024-12-06 22:45:21 +00:00
  • dba4f123d6 lang: ast: implement parsing of lambdas Max Wash 2024-12-06 22:26:06 +00:00
  • 68ad0655aa lang: ast: fix selector to_string not including keyword message labels Max Wash 2024-12-06 22:25:33 +00:00
  • dc55cfa1f8 lang: ast: propagate block terminator token to child expressions Max Wash 2024-12-06 22:24:48 +00:00
  • 54c6fd7040 lang: ast: adjust and clarify the precedence of token parser callbacks Max Wash 2024-12-06 22:24:08 +00:00
  • 4c36615bc1 lang: ast: implement s_terminator in block parser for all symbols Max Wash 2024-12-06 21:34:26 +00:00
  • 67bfdef18a lang: ast: misc formatting and reference fixes Max Wash 2024-12-06 21:33:53 +00:00
  • bd377b00f4 frontend: repl: add show-lex and show-ast command options Max Wash 2024-12-06 20:24:50 +00:00
  • 175e191aa6 frontend: debug: replace custom ast node printer with ast_node_to_string Max Wash 2024-12-06 20:24:33 +00:00
  • bd5e524241 lang: ast: replace ast node print callback with to_string Max Wash 2024-12-06 20:24:08 +00:00
  • ae15f228d3 lang: ast: fix finalise_property not being called when parsing a right paren Max Wash 2024-12-06 20:23:46 +00:00
  • 41ef94bf3d lang: ast: fix incorrect property parser state struct name Max Wash 2024-12-06 20:23:23 +00:00
  • 4e301a3e90 doc: add properties to sample file Max Wash 2024-12-06 19:51:01 +00:00
  • 6b9bd4771d doc: full properties now always have a pipe symbol after their identifier Max Wash 2024-12-06 19:49:21 +00:00
  • ec05379e33 cmake: add support for static build Max Wash 2024-12-06 19:48:20 +00:00
  • 1f7319458e lang: ast: implement parsing of properties Max Wash 2024-12-06 19:47:27 +00:00
  • 603c6709fb frontend: add debug-print support for ATOM and STRING nodes; add colour to several node types Max Wash 2024-12-06 13:48:08 +00:00
  • 4cfb1e56ea doc: a heck-ton more expressions for the sample file :) Max Wash 2024-12-06 13:47:21 +00:00
  • 94c10dfbb2 lang: ast: implement parsing of f-strings Max Wash 2024-12-06 13:46:58 +00:00
  • 2bd3e96427 lang: ast: implement parsing of atoms Max Wash 2024-12-06 13:46:41 +00:00
  • 7ba0a05332 lang: ast: fix error when parsing message handler keyword-message selector Max Wash 2024-12-06 13:23:02 +00:00
  • d3813dc514 lang: ast: treat bang (!) as an unconsumed expression terminator Max Wash 2024-12-06 13:22:33 +00:00
  • 363b13534d frontend: compile: replace verbose option with dedicated logging options Max Wash 2024-12-06 13:21:55 +00:00
  • c58eed715e doc: lots more exiciting expressions for the sample file Max Wash 2024-12-06 10:02:51 +00:00
  • d88d58be70 lang: ast: implement for-loop parsing Max Wash 2024-12-06 10:02:31 +00:00
  • f3cd89c72a lang: ast: implement caret (return) parsing Max Wash 2024-12-06 10:01:56 +00:00
  • d1855afc05 lang: add missing includes; misc formatting cleanup Max Wash 2024-12-06 09:53:09 +00:00
  • 5fe3231c9e lang: ast: fix match node type specifying wrong node size Max Wash 2024-12-05 22:00:23 +00:00
  • 8ef057360e frontend: compile: add verbose command option Max Wash 2024-12-05 21:06:03 +00:00
  • 9a4b074381 lang: ast: suppress debug output by default Max Wash 2024-12-05 19:37:58 +00:00
  • c0a90f40b5 doc: add while loops to sample file Max Wash 2024-12-05 19:29:36 +00:00
  • 1a4d6089a1 lang: ast: implement parsing of while-loops Max Wash 2024-12-05 19:29:21 +00:00
  • e23cd801c9 lang: ast: fix keyword arg parser not inheriting subexpr depth correctly Max Wash 2024-12-05 16:55:53 +00:00
  • fc0a943ae8 lang: ast: improve cascade operator recipient resolution Max Wash 2024-12-05 16:53:59 +00:00
  • ad8ce82bad doc: add match statement to sample file Max Wash 2024-12-04 22:23:33 +00:00
  • 7acf80f930 lang: ast: implement parsing of match statements Max Wash 2024-12-04 22:22:25 +00:00
  • 0bb4a4284c lang: ast: re-factor condition group parser Max Wash 2024-12-04 21:02:55 +00:00
  • a34b9c3710 lang: ast: fix expr_finalise not consuming the right-paren of a parenthesised expression Max Wash 2024-12-04 20:18:40 +00:00
  • 7d2e945384 doc: add more inline conditional expressions to sample file Max Wash 2024-12-04 16:41:34 +00:00
  • 84f3704db0 lang: ast: fix expr_finalise not handling complex message terminator Max Wash 2024-12-04 16:41:18 +00:00
  • 04ee7d77c0 doc: add more complex expressions to sample file Max Wash 2024-12-04 16:35:54 +00:00
  • 5af47ce443 frontend: add colours to conditional AST tree debug output Max Wash 2024-12-04 16:35:41 +00:00
  • c23523ce14 lang: ast: implement parsing of inline and standalone if-else statements Max Wash 2024-12-04 16:35:19 +00:00
  • d2677e2038 lang: lex: add hen keyword Max Wash 2024-12-04 16:34:40 +00:00
  • 0836a1d827 doc: add sample cascade operations Max Wash 2024-12-03 21:58:02 +00:00
  • 051cb1d2c2 lang: ast: implement cascade operator parsing Max Wash 2024-12-03 21:57:44 +00:00
  • 16ab13d738 lang: ast: re-factor expression parser into multiple files Max Wash 2024-12-03 13:26:55 +00:00
  • 1204bffb4d lang: ast: fix parsing of parenthesised sub-expressions in keyword arguments Max Wash 2024-12-02 11:37:01 +00:00
  • 45e2d5919a doc: add even more complex expressions to sample file Max Wash 2024-12-02 11:00:00 +00:00
  • 6d6adf5955 lang: ast: fix parsing of consecutive unary messages Max Wash 2024-12-02 10:59:49 +00:00
  • d5898bb7d9 doc: add more complex expressions to sample file Max Wash 2024-12-02 10:48:32 +00:00
  • 5ec3e8fcd4 lang: ast: implement parsing of complex messages Max Wash 2024-12-02 10:48:16 +00:00
  • 1c5b23d968 lang: ast: re-write expression parser to support keyword messages Max Wash 2024-12-02 07:56:27 +00:00
  • 1c73e1d37b lang: ast: implement parsing of right-parenthesis in expressions Max Wash 2024-12-01 13:56:05 +00:00
  • 48d649a403 doc: fix mixed indentation in sample file Max Wash 2024-12-01 13:26:40 +00:00
  • b5cb87e8df lang: fix lots of compiler warnings/errors Max Wash 2024-12-01 13:25:36 +00:00
  • bb34e46c69 frontend: implement an ast node printer Max Wash 2024-12-01 13:19:48 +00:00
  • c9dbc2e7e4 lang: re-arrange the operator table Max Wash 2024-12-01 13:19:01 +00:00
  • 051942e243 vim: add missing operators; fix highlighting of tokens after labels Max Wash 2024-12-01 13:14:48 +00:00
  • 624f183de8 lang: ast: fix inconsistent indentation Max Wash 2024-11-29 12:06:06 +00:00
  • ec24e2c327 lang: ast: convert RPN expression queue to ast and replace generic EXPR node with it Max Wash 2024-11-28 22:06:25 +00:00
  • 05ced5d5fc lang: ast: define ast_node_type for some fundamental expression components Max Wash 2024-11-28 22:05:37 +00:00
  • 47c11e4c10 lang: ast: add missing #include Max Wash 2024-11-28 22:04:22 +00:00
  • 7aed34c875 lang: add some parser-internal operators Max Wash 2024-11-28 22:01:31 +00:00
  • c3abcec05a doc: add some more complex expressions to Simple.im Max Wash 2024-11-28 17:00:52 +00:00
  • b227b27c06 lang: ast: implement more of the expression parser Max Wash 2024-11-28 17:00:37 +00:00
  • a37e4d23bb lang: ast: get_token_expr_type now uses the operator table to discern expression symbols Max Wash 2024-11-28 16:59:04 +00:00
  • 2a33ae44a5 lang: ast: move recipient tracking from msg handler node to selector node Max Wash 2024-11-28 16:58:01 +00:00
  • 4304b94491 lang: ast: implement single-expression message handler parsing Max Wash 2024-11-28 16:57:10 +00:00
  • 7530dd36a2 lang: ast: move block parser state to separate header file Max Wash 2024-11-28 16:56:25 +00:00
  • 6a765c4f2b lang: define operator arity and position Max Wash 2024-11-28 16:54:45 +00:00
  • fc76fe6ad4 lang: ast: use fancy index manipulation to reduce the size of ast_node_type Max Wash 2024-11-28 10:56:43 +00:00
  • f04c858d9a lang: lex: add base/limit markers around token type enums Max Wash 2024-11-28 10:56:23 +00:00
  • 811d3787c4 lang: ast: add a BLOCK ast node to hold lists of expressions Max Wash 2024-11-28 10:26:53 +00:00
  • 7f9894d8f9 lang: fix a bunch of compiler warnings Max Wash 2024-11-27 22:45:34 +00:00
  • 9df8474515 frontend: always print lex tokens when compiling file or repl input Max Wash 2024-11-27 22:30:42 +00:00
  • 101d87e09d lang: ast: implement simple identifier and operator expression parsing Max Wash 2024-11-27 22:29:29 +00:00
  • 31de937a21 lang: add operator precedence and associativity definitions Max Wash 2024-11-27 22:29:01 +00:00
  • c7e3cea9b9 lang: lex: add definitions for some missing symbols and keywords Max Wash 2024-11-27 22:28:17 +00:00
  • 5af2692555 doc: document some additional operators in Person.im Max Wash 2024-11-27 22:26:59 +00:00
  • a5c0606221 lang: lex: fix push_token not setting lex_prev_token Max Wash 2024-11-27 12:56:39 +00:00
  • ad25b89af0 lang: ast: fix incorrect return types; add function to determine expression tokens Max Wash 2024-11-27 12:56:10 +00:00
  • cd89c20beb lang: ast: implement control flags returned by parser functions Max Wash 2024-11-26 21:30:40 +00:00
  • 740df312a9 lang: ast: remove redundant parse header Max Wash 2024-11-26 21:30:09 +00:00
  • 8cf341c063 doc: add really simple source file for parser testing Max Wash 2024-11-26 13:10:52 +00:00
  • 886c0b49a4 frontend: compile: parse source files Max Wash 2024-11-26 13:10:36 +00:00
  • 25e65f2107 frontend: repl: combine repl_full and repl_lex_only Max Wash 2024-11-26 13:09:57 +00:00
  • 5f5efd8d35 lang: ast: initial implementation of msg handler and selector parsing Max Wash 2024-11-26 13:08:39 +00:00
  • 27792c43b3 lang: ast: fix compiler warnings Max Wash 2024-11-25 21:31:52 +00:00
  • 8eb7eff274 frontend: repl: print ast once all tokens in the lex buffer have been consumed Max Wash 2024-11-25 16:51:29 +00:00
  • f9b0096dd7 lang: ast: initial implementation of class parser Max Wash 2024-11-25 16:50:42 +00:00
  • 19506a299c lang: ast: add nullptr check to ivy_ast_node_iterate Max Wash 2024-11-25 16:50:12 +00:00
  • 95321d7019 lang: ast: transparently ignore linefeeds if the current parse context doesn't handle them Max Wash 2024-11-25 16:49:43 +00:00
  • dca0aba183 lang: ast: implement parsing 'use' statements Max Wash 2024-11-25 16:49:07 +00:00
  • f1032f0c8e lang: ast: move unit-package parser state definition to c file Max Wash 2024-11-25 16:46:27 +00:00
  • f603551e26 lang: ast: fix compiler warnings Max Wash 2024-11-24 21:31:49 +00:00
  • 6fa1524766 frontend: repl: print the ast after each line of input Max Wash 2024-11-24 20:50:32 +00:00
  • 1e7e73db21 lang: ast: implement ast iteration Max Wash 2024-11-24 20:50:12 +00:00
  • 5622073252 frontend: repl: print and destroy ast nodes after parsing Max Wash 2024-11-24 16:12:49 +00:00
  • fbef0b6743 lang: ast: add stub functions for retrieving, printing, interating, and destroying ast nodes Max Wash 2024-11-24 16:12:31 +00:00