Commit Graph

235 Commits

Author SHA1 Message Date
89b5089564 modified the reader to allow redundant semicolons as if blank expressions are specified. redundant semicolons form no expressions.
Some checks failed
continuous-integration/drone/push Build is failing
modified the compiler to emit instructions to return the receiver for methods for classes
2023-12-04 22:35:30 +09:00
924d4ad5e2 updating the compiler to recognize class-level variables accessors prefixed with self/super in assignment expressions
Some checks failed
continuous-integration/drone/push Build is failing
2023-12-02 03:35:59 +09:00
70828ac110 updated the reader and the compiler to support self.var inside class definition
Some checks failed
continuous-integration/drone/push Build is failing
2023-12-01 21:49:28 +09:00
e6f6d33e51 enhanced the feed processor to auto-terminate auto-forged xlist without semicolon if it comes right before the right brace
Some checks failed
continuous-integration/drone/push Build is failing
2023-11-29 17:12:21 +09:00
bb4786b6ca some compiler enhancements
Some checks failed
continuous-integration/drone/push Build is failing
2023-11-29 15:54:37 +09:00
9f4bf7485d enhanced the compiler to prohibit variable declaration after 'do' if it's the head of block expression
Some checks failed
continuous-integration/drone/push Build is failing
2023-11-28 01:44:13 +09:00
3d47a99cd2 added many charcter handling code
Some checks failed
continuous-integration/drone/push Build is failing
2023-11-22 00:24:57 +09:00
8cb9178820 fixed many more issue in compiling block expressoins
Some checks failed
continuous-integration/drone/push Build is failing
2023-11-12 21:54:17 +09:00
268eae3e53 updated comment text in read.c
Some checks failed
continuous-integration/drone/push Build is failing
2023-11-12 00:31:34 +09:00
23610117d6 fixing various reader bug in the block mdoe
Some checks failed
continuous-integration/drone/push Build is failing
2023-11-10 18:06:49 +09:00
889d5d90ae compiler fix to support the code block expression
Some checks failed
continuous-integration/drone/push Build is failing
2023-11-10 02:59:41 +09:00
5a28ab3749 working on the block expression compilation
Some checks failed
continuous-integration/drone/push Build is failing
2023-11-10 00:03:03 +09:00
9110a083eb some code to handle the auto-forged xlist beginning with no opening parenthesis but ending with a semicolon
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-08 19:05:24 +09:00
44fd446274 switched to use fgetc() instead of fread() because fread() doesn't stop when a new line is enountered. fgets() is not a good candidate either.
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-08 00:11:43 +09:00
d5c47e5a9a in progress implementing the block
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-07 21:23:00 +09:00
984c1f62a9 added the semicolon as a token and a delimiter
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-07 19:47:37 +09:00
d9e658dc4b some more naming changes
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-07 19:19:06 +09:00
20ddd12c89 renamed various names
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-05 22:31:33 +09:00
94a44f1fd7 separted the IO handlers to the source code handler and user stream handlers
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-05 16:58:45 +09:00
bcfe69feda yet another round of internal name changes
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-04 23:23:20 +09:00
238365e198 another round of internal name changes 2023-11-04 23:13:52 +09:00
df924338df internal name changes
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-04 22:58:31 +09:00
428f67f25c added hcl_feedbchars()/hcl_feeduchars()
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-03 18:04:46 +09:00
7ccc1ce136 enhanced the go wrapper by adding more methods and cleaning up code
All checks were successful
continuous-integration/drone/push Build is passing
2023-11-01 16:06:28 +09:00
f19b971645 removed unneeded reader code.
All checks were successful
continuous-integration/drone/push Build is passing
changed { to #{ as a dictionary opener. { will be used as a block opener
2023-10-23 18:50:44 +09:00
206df863cf removed hcl_read() and related code 2023-10-05 14:01:32 +09:00
0845e12a93 added hcl_seterrumsg() and hcl_seterrbfmt() in case the caller can't use variadic arguments
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-29 01:49:13 +09:00
ce47037b79 enhanced hcl_attachiostdwithbcstr() and hcl_attachiostdwithucstr()
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-19 23:25:50 +09:00
e2abfe07ab added .drone.yml
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-19 13:06:32 +09:00
b340f09ecc extended hcl_attacio() to access a new input stream handler under the name of scanner.
renamed hcl_ioinarg_t to hcl_iosrarg_t
took back hcl_ioinarg_t for the new input stream handling
2023-05-19 12:55:08 +09:00
2bd78d2bfc added hcl_attachiostdwithucstr().
updated hcl_readbaseinraw()
2023-05-19 00:16:51 +09:00
893e5d4c89 add hcl_attachiostd().
moved the default io handler from bin/main.c to lib/std.c
2023-05-18 10:24:01 +09:00
8f9068c4d3 renamed included to includee 2022-08-22 04:30:35 +00:00
cc07e0f58e renamed hcl_readchar() to chl_readbaseinchar().
changed its behavior to work on hcl->c->inarg only
fixed bugs in feed_begin_include() and feed_end_include()
fixed the bug for which the location information is not updated in reading an included file and feeding its content
2022-08-02 13:41:13 +00:00
e8acc7cd5b fixed a bug in compile_do() 2022-08-01 06:31:33 +00:00
1bf908e6ba some minor code touch-up 2022-07-31 13:17:44 +00:00
e12033f81a removed some unused variables in read.c 2022-07-31 04:18:09 +00:00
fd204b1d93 enhanced vlist reading 2022-07-30 15:21:44 +00:00
72b0da966f fixed the vlist reading in the feed-based reader 2022-07-30 03:02:57 +00:00
f3c3bfcf07 enhanced the feed_loop() in bin/main.c 2022-07-29 14:41:00 +00:00
e6d204c766 some more code for the feed-based reader 2022-07-29 11:29:47 +00:00
51c3145b88 improved file inclusion for the feed-based reader 2022-07-28 14:20:28 +00:00
2543b0d634 coding include file handling in the feed-based reader 2022-07-28 14:07:18 +00:00
aab704ac4b adding code to form an object in the feed-based reader 2022-07-26 15:06:53 +00:00
cdc939fb1d more code for the feed-based reader 2022-07-26 00:06:29 +00:00
f99841442a enhanced the tokenization code to check for hash-marked directives better 2022-07-24 00:49:03 +00:00
5abe10668b renamed some words 2022-07-23 14:06:46 +00:00
87a6d152f8 improved the hash-marked identifier handling in the feed-based reader 2022-07-23 10:09:36 +00:00
3d6abc38bd updated the feed-based reader to handle hashmarked character literals 2022-07-23 06:57:01 +00:00
65aacaaf4f some work done for the feed based reader 2022-07-22 08:02:14 +00:00
7a81c58ae3 fixed a bug in hcl_feed() 2022-07-18 10:39:10 +00:00
60c9fe8ac9 implementing hcl_feed() 2022-05-25 14:23:43 +00:00
50c04bb770 trying to detect prohibited access to an instance vairables in a class method.
inventing the class instantiation method concept
2022-02-24 16:47:26 +00:00
026ece9aea added the super keyword 2022-02-18 16:32:19 +00:00
495cea5704 added a new identifier - self 2022-02-05 17:35:10 +00:00
a7a69d9a11 implementing a message sending list 2022-01-14 16:09:52 +00:00
0f1df4684a making a useless commit 2021-06-07 01:11:17 +00:00
391d62511b writing code to implement return variables 2021-05-09 15:32:54 +00:00
01719d0056 enhancing the compiler to support the variable argument list with the ellipsis 2021-05-07 08:53:01 +00:00
08149767b5 improving function block and control block handling in the compiler code 2021-04-09 08:22:40 +00:00
2d22b53c96 fixed some compiler bugs 2021-02-01 13:20:46 +00:00
0568cb0ae3 removed some unneeded code.
changed the source input handler to set the name field for the main stream
2021-01-30 16:13:27 +00:00
db9e0f5248 cleaned up a bit 2021-01-29 17:24:13 +00:00
525078fbe5 removed unneeded code 2021-01-29 09:41:39 +00:00
d19fab7e3f renamed hcl_read2() and hcl_compile2() to hcl_read() and hcl_compile() respectively 2021-01-29 08:40:10 +00:00
d4fbd0a298 removed hcl_read() and hcl_compile().
in the next commit(), hcl_read2() and hcl_compile2() will get renamed to hcl_read() and hcl_compile() respectively
2021-01-29 08:35:31 +00:00
d36c12e21a changing compiler code to preserve some debugging information 2021-01-27 08:47:08 +00:00
58165aad49 updated lambda/return/return-from-home compiling code in the new compiler 2021-01-21 14:59:01 +00:00
e4ae7add8b coding a better compiler 2021-01-17 17:45:39 +00:00
963f162c4e more code to implement a new object reader 2021-01-10 16:04:36 +00:00
5d05984664 changing code to improve the compiler 2021-01-09 16:53:35 +00:00
24b96e4c29 attempting to preserve token location between the reader and the compiler 2021-01-06 09:37:29 +00:00
6720640ed7 adding some work-in-progress code to store debugging information for generated byte codes 2021-01-03 13:51:23 +00:00
11e831bbcc switching GC from semi-space copying to mark-sweep 2020-12-31 17:48:47 +00:00
164be69b9d minor whitespace removal from code 2020-10-15 13:47:52 +00:00
c7e87698d0 still experimenting to find a good way to represent byte codes and literal frames in the interactive mode 2020-09-28 15:44:04 +00:00
e27058d771 added the _instsize field to hcl_t, hcl_server_t, hcl_client_t 2019-06-21 12:36:25 +00:00
0cbf9e4edf added hcl_flushio() and HCL_IO_FLUSH 2019-04-17 05:37:56 +00:00
0011937699 removed unnecessary restoration code in string_to_fpdec() 2019-01-08 08:57:37 +00:00
9a186711e4 dropped cli-mode code. it turned out to be not effective 2018-08-08 03:41:17 +00:00
28cc69ea21 wrote more compiler mode to handle input in the cli mode 2018-08-07 11:04:38 +00:00
fe28d23307 added more experimental code for the cli mode 2018-08-06 10:41:38 +00:00
256472b2ea fixed many bugs in cli mode reader 2018-08-05 18:46:54 +00:00
0634bf26b3 enhanced the cli-mode reader a bit 2018-08-04 00:59:35 +00:00
f90adb468e add a bit of code into the cli mode reader 2018-07-31 15:51:16 +00:00
d5eb6a85e5 hmm.. just a few lines of cli mode code 2018-07-30 15:37:03 +00:00
9e3ddd1e2c added more code to read_object_in_cli_mode() 2018-07-29 08:01:43 +00:00
8c4b56002d started adding an new experimental reader 2018-07-29 07:27:10 +00:00
1b59610444 added hcl_getsynerrnum() and enhanced EOF handling 2018-07-28 04:08:09 +00:00
c6e4aa0702 add some json parsing code 2018-04-22 18:18:45 +00:00
dfee95436f touched up an error message shown for an invalid hashed literal encountered whose first character after # is invalid 2018-04-10 10:10:50 +00:00
e92407221f renamed some function names for naming consistency 2018-04-07 15:54:16 +00:00
3d344fc649 set salit.size to 0 forcibly in get_symbol_array_literal() 2018-04-07 15:09:02 +00:00
bec9600463 fixed an error handling issue in get_symbol_array_literal() 2018-04-07 06:28:54 +00:00
69a5ef94bd changed hcl_seterrxxx() functions not to set the errnum field again for failures in internal operations, especially in hcl_convxxx() 2018-04-06 14:59:44 +00:00
8726768be2 changed hcl_seterrxxx() functions 2018-04-06 14:37:40 +00:00
4ff11f147c changed notation from #{} to #() 2018-04-06 14:21:47 +00:00
e41a02b957 changed hcl to be more json friendly including changing various notations and grammars 2018-04-06 08:33:25 +00:00
8df5087b9d enhanced the multiplication function to truncate the resulting fixed-point decimal to the equal precision to the operands 2018-03-30 18:11:11 +00:00
e466c6b68a disallowed fixed point decimal literal with no digit after the point.
fixed a bug in hcl_divnums
2018-03-30 17:37:40 +00:00
116512ae9d started adding fpdec calculation functions 2018-03-28 16:40:42 +00:00
3a30ffda7b implemented reading and printing of fixed-point decimal number. primitives yet to be written 2018-03-28 08:57:49 +00:00
89f3fc2d08 started some code for hcl client 2018-03-18 15:29:16 +00:00
c41c3a12af enhanced the inclusion path handling in the sample hcl server code
added HCL_SERVER_SCRIPT_INCLUDE_PATH
added optstate field in hcl_server_worker_t
2018-03-17 05:44:40 +00:00
3acdae2cdf changed the hcl_ioimpl_t prototype to return 'int' instead of 'hcl_ooi_t'.
changed the io arguments to have a new 'xlen' field that holds the result of IO operations where 0 means end of stream
2018-03-09 05:05:09 +00:00
a60bd0c898 renamed hcl_purgeatdic() to hcl_zapatdic()
exposed hcl_moveoop() 
extended the meaning of the kernel bits in the object flags
extended hcl_pfbase_t to include the type - one of HCL_PFBASE_FUNC, HCL_PFBASE_VAR, HCL_PFBASE_CONST. HCL_PFBASE_CONST not fully implemented yet
2018-03-08 14:18:30 +00:00
2c1b4448be changed the notatin of an error literal from #\eNNN to #eNNN.
changed the notation of a smptr literal from #\pXXXX to #pXXXX
2018-03-05 03:47:18 +00:00
d4d9491f3c exported hcl_readchar() and hcl_unreadchar() 2018-03-04 14:43:23 +00:00
5aee382e9e fixed the wrong word output for #nil in the json format 2018-03-02 07:58:37 +00:00
e58d4e30cc fixed a bug printing %% in print_formatted.
changed to use #x #o #b for hexadecimal, octal, binary output
2018-03-01 08:56:56 +00:00
ffa6c39852 fixed a bug in printing a single character when hcl_ooch_t is hcl_bch_t
implemented the primitive printf function partially
2018-02-28 10:17:05 +00:00
c865de4d61 changed the prototype of hcl_pfimpl_t to accept a hcl_mod_t* pointer 2018-02-28 04:52:01 +00:00
ef51ee4a1d enhanced the logfmtv to handle encoding conversion of the format string 2018-02-26 15:24:45 +00:00
a78dba499f changed the reader to use a stack of 4-item arrays instead of chains of 3 cons cells
cleaned up some unused code
2018-02-22 10:02:39 +00:00
4876d1775c added hcl_getlastretv().
enhanced hcl_hashobj() to return hash values for nil, true, false
2018-02-22 07:41:03 +00:00
25e4bb040c added a new debugging macro HCL_DEBUG_LEXER
removed the debugging macro HCL_DBEUG_BIGINT
2018-02-21 13:02:05 +00:00
093ee93a3c deleted unneeded code 2018-02-17 16:09:44 +00:00
22127d384f added some error checks for error literals and smptr literals 2018-02-17 16:01:27 +00:00
de0715e302 implemented the single quote character literal.
added the error literal and the smptr literal notations and types
2018-02-17 15:42:12 +00:00
2a0551df2d enhanced hcl_inttostr() to keep results in the temporary buffer when ngc is negative.
changed the integer printing function to utilize this change in print.c
2018-02-15 08:05:48 +00:00
374748f271 added reader & compiler check to filter out special symbols when processing argument and variable names in more contexts 2018-02-15 01:39:00 +00:00
f802bec44a integrated bigint
cleaned up code
2018-02-13 16:10:41 +00:00
4ddffc101d mapped a dotted identifer to a primitive function 2018-02-12 10:50:44 +00:00
45bb26d97f fixed the way to drive hcl in main.c 2018-02-09 17:15:31 +00:00
043f756076 improved error messsages 2018-02-09 15:04:18 +00:00
4f55376107 touched up code. added eqv? eql? not 2018-02-08 07:40:27 +00:00
e54096f2a0 changed copyright years 2018-02-07 14:13:13 +00:00
ca7da52af4 added bytearray compilation code 2018-02-07 13:55:22 +00:00
f904914d6a implemented dictionary printing 2018-02-07 10:55:20 +00:00
979ba97769 enhanced the compiler to handle array enclosed in #().
added partial code to handle dictionary enclosed in #{}
2018-02-07 07:35:30 +00:00
7826f0ff06 changed the reader to handle #(), #[], #{}, '() specially 2018-02-06 10:16:01 +00:00
293222d5c5 trying to revive this project 2018-02-05 10:43:25 +00:00
bdfc72d48d added some code to handle local variable declaration 2016-10-01 04:36:48 +00:00
55a5d2c3c6 did something on temporary variable and argument handling 2016-09-29 13:20:09 +00:00
94e690004d added initial hcl files 2016-09-28 14:40:37 +00:00