Subject | Hash | Author | Date (UTC) |
---|---|---|---|
Increased types hashtable size | 8970d5c4bb8f9e4640f4c6a1805cf69369ebaea3 | lep | 2018-12-07 18:13:17 |
Fixed some warnings. | 334a10dc8faad2fa19eed06834273bff438f3955 | lep | 2018-11-07 22:45:22 |
Optimized ht_put by not calling ht_lookup. | 4a2c4d293b719c939b4d8f357adcc04ef26b1cbb | lep | 2018-11-07 20:51:00 |
Only add globals to uninitialized globals. | efb384fb661e08a855a5861189bf9409ebf9f557 | lep | 2018-11-07 14:56:38 |
Added unitialized check for globals. | d8a909d8ac08cc233f5cd988afac043cbaeb1b4e | lep | 2018-11-06 19:43:57 |
Fixed off-by-one error in str_append. | b458eb97a71bad87bbbbef610009da40e0dbf855 | lep | 2018-11-01 12:26:48 |
Added modulo operator. | 70b4c5117a0b84cddd0c35e07a47e3b2aaf847b8 | lep | 2018-08-09 19:46:14 |
realloc returns the new pointer... | c15eac9a4c2c2531a256125bc70272edbbf1d036 | lep | 2018-07-24 20:03:41 |
Track blocks | d2763ae8473a1c699aa2e5605922e4b500c83ed4 | lep | 2018-07-22 13:28:40 |
Cross compile and strip under FreeBSD | 296bd56c1347afb7a20337e02574f9196b48317a | lep | 2018-07-22 11:55:29 |
Track opening/closing blocks. | 49b23df64b209106cce92e417ee13ecebb0bc009 | lep | 2018-07-09 09:37:01 |
Replace strncat with str_append. | ad968e040f315ed3cf6580e46587342897839529 | lep | 2018-03-21 13:53:11 |
Do not report arrays as uninitialized when the index is missing. | 72e93bd234743a438fb0a5c105514bf732c22b89 | lep | 2017-12-20 14:59:10 |
Better error messages. | ad8342582ac3617280f471d889b1766be272858b | lep | 2017-11-15 17:52:08 |
Handle wrong shadowing. | 0500a60ef11f39c4f33044e26c29798f6d8445b5 | lep | 2017-02-19 14:37:21 |
Added checks for natives which behave bad in a globals block. | 3e6ac270dda9ad695723d3bc2aac4d69a2fdf87a | lep | 2017-02-19 10:57:33 |
Update readme.md | 2c9177dd5482ed8c4c1464a4ade37c301205fe6b | lep | 2017-02-01 17:42:49 |
Public git release. | 2da78f3665ac4f53f5833c6a48ebbeaabea0cd49 | lep | 2017-02-01 16:42:21 |
Better ifdef-handling for aligned malloc. | d95ebafa7204e49d84a9fed8cdeb01713dd0bc82 | lep | 2017-02-01 16:41:07 |
Makefile changes. | 0458bb26764aad1caec71ccf721e84a28c699ee0 | lep | 2017-02-01 15:48:25 |
File | Lines added | Lines deleted |
---|---|---|
grammar.y | 5 | 4 |
main.c | 1 | 1 |
misc.c | 3 | 3 |
File grammar.y changed (mode: 100644) (index eb6213e..289fc3d) | |||
... | ... | expr: intexpr { $$.ty = gInteger; } | |
210 | 210 | } | } |
211 | 211 | | expr MINUS expr { $$.ty = binop($1.ty, $3.ty); } | | expr MINUS expr { $$.ty = binop($1.ty, $3.ty); } |
212 | 212 | | expr PLUS expr { | | expr PLUS expr { |
213 | if ($1.ty == gString && $3.ty == gString) | ||
214 | $$.ty = gString; | ||
215 | else | ||
216 | $$.ty = binop($1.ty, $3.ty); } | ||
213 | if ($1.ty == gString && $3.ty == gString) | ||
214 | $$.ty = gString; | ||
215 | else | ||
216 | $$.ty = binop($1.ty, $3.ty); | ||
217 | } | ||
217 | 218 | | MINUS expr { isnumeric($2.ty); $$.ty = $2.ty; } | | MINUS expr { isnumeric($2.ty); $$.ty = $2.ty; } |
218 | 219 | | LPAREN expr RPAREN { $$.ty = $2.ty; } | | LPAREN expr RPAREN { $$.ty = $2.ty; } |
219 | 220 | | funccall { $$.ty = $1.ty; } | | funccall { $$.ty = $1.ty; } |
File main.c changed (mode: 100644) (index 7380510..931a28d) | |||
... | ... | static void init() | |
21 | 21 | ht_init(&globals, 8191); | ht_init(&globals, 8191); |
22 | 22 | ht_init(&locals, 57); | ht_init(&locals, 57); |
23 | 23 | ht_init(¶ms, 23); | ht_init(¶ms, 23); |
24 | ht_init(&types, 149); | ||
24 | ht_init(&types, 151); | ||
25 | 25 | ht_init(&initialized, 2047); | ht_init(&initialized, 2047); |
26 | 26 | ||
27 | 27 | ht_init(&bad_natives_in_globals, 17); | ht_init(&bad_natives_in_globals, 17); |
File misc.c changed (mode: 100644) (index 4b22c86..207498c) | |||
... | ... | void checkmodulo(const struct typenode *a, const struct typenode *b) | |
500 | 500 | bool snd = typeeq(pb, gInteger); | bool snd = typeeq(pb, gInteger); |
501 | 501 | ||
502 | 502 | if(! fst && ! snd){ | if(! fst && ! snd){ |
503 | yyerrorex(semanticerror, "Both arguments of the modulo-operator must be integers"); | ||
503 | yyerrorex(semanticerror, "Both operands of the modulo-operator must be integers"); | ||
504 | 504 | }else if(! fst){ | }else if(! fst){ |
505 | yyerrorex(semanticerror, "First argument of the modulo-operator must be an integer"); | ||
505 | yyerrorex(semanticerror, "First operand of the modulo-operator must be an integer"); | ||
506 | 506 | }else if(! snd){ | }else if(! snd){ |
507 | yyerrorex(semanticerror, "Second argument of the modulo-operator must be an integer"); | ||
507 | yyerrorex(semanticerror, "Second operand of the modulo-operator must be an integer"); | ||
508 | 508 | } | } |
509 | 509 | ||
510 | 510 |