37 Commits

Author SHA1 Message Date
Stefano Sanfilippo
40845c011b Cleanups.
1. move emit() to separate file.
2. move main to .cpp
3. use "namespace" for parser and lexer.
4. remove Type.h
2014-11-27 19:59:48 +01:00
Stefano Sanfilippo
9e12a95612 Renaming ASSERT_BEGIN and ASSERT_END into ASSERT and BANG. 2014-11-25 00:47:51 +01:00
Stefano Sanfilippo
4cdde5025a Fully optional comma.
As a side effect, return now must end with "!".
2014-11-25 00:46:34 +01:00
Stefano Sanfilippo
ab0cd1f1de Funnier function declaration. 2014-11-25 00:39:42 +01:00
Stefano Sanfilippo
90c75e9b5a Optional statement terminator wherever possibile. 2014-11-25 00:39:27 +01:00
Stefano Sanfilippo
7197bd707a Allow arbitrary expressions to be passed as function params. 2014-11-25 00:39:01 +01:00
Stefano Sanfilippo
be3de046c3 Moving %start directive to bottom of prologue. 2014-11-24 23:59:28 +01:00
Stefano Sanfilippo
b5d524c295 Add Types.h to %code require in parser definition. 2014-11-24 23:56:54 +01:00
Stefano Sanfilippo
af934dfea8 Formatting 2014-11-24 21:19:13 +01:00
Stefano Sanfilippo
2f42a60849 Prototypes and header cleanups for parser. 2014-11-24 21:18:59 +01:00
Stefano Sanfilippo
65a3929f48 CASE_END only if case is not last. 2014-11-24 10:50:10 +01:00
Stefano Sanfilippo
16772f287e Cluster common part between expression and semi-expression. 2014-11-24 00:14:27 +01:00
Stefano Sanfilippo
d80705b163 Allow ARTICLE in function param list. 2014-11-23 23:45:29 +01:00
Stefano Sanfilippo
f9abe82f69 Allow function calls in expressions. 2014-11-23 23:45:16 +01:00
Stefano Sanfilippo
68cb175e90 Cases in branch can only be semi expressions. 2014-11-23 23:36:58 +01:00
Stefano Sanfilippo
00ed9869ed Verbose error messages. 2014-11-23 22:46:50 +01:00
Stefano Sanfilippo
72e3888cce Functions don't need terminator. 2014-11-23 22:43:51 +01:00
Stefano Sanfilippo
a8521e324d Program can be empty. 2014-11-23 22:43:42 +01:00
Stefano Sanfilippo
cad818d33b Get rid of DOTS. 2014-11-23 22:33:50 +01:00
Stefano Sanfilippo
ae7920d5dd Use comma and dots instead of dot (easy flow). 2014-11-23 22:32:41 +01:00
Stefano Sanfilippo
0de580d0e9 Funnier delimiters for functions. 2014-11-23 22:18:56 +01:00
Stefano Sanfilippo
fd373c390a Fix var initialization. 2014-11-23 22:07:55 +01:00
Stefano Sanfilippo
42c46c0648 No DOT after END_ASSERT. 2014-11-23 22:07:43 +01:00
Stefano Sanfilippo
af77bb1c3c Add missing semicolon. 2014-11-23 20:48:23 +01:00
Stefano Sanfilippo
92a6ea5a59 Fix assign statement. 2014-11-23 20:47:52 +01:00
Stefano Sanfilippo
2aef8dbeec Allow semi expressions in branch conditions. 2014-11-23 20:47:39 +01:00
Stefano Sanfilippo
613599a7d9 Fix var declaration. 2014-11-23 20:47:18 +01:00
Stefano Sanfilippo
49893a04a0 Pointer dereference through operator STAR. 2014-11-23 20:46:58 +01:00
Stefano Sanfilippo
95087c6e7e No more newlines (use . DOT as delimiter). 2014-11-23 20:45:44 +01:00
Stefano Sanfilippo
701e06b781 Newline after function definition. 2014-11-23 19:30:30 +01:00
Stefano Sanfilippo
03d40b0ad6 Statements can be empty. 2014-11-23 19:29:48 +01:00
Stefano Sanfilippo
d9f3d6f06a Fix conflicts by introducing a CASE_END token. 2014-11-23 19:24:10 +01:00
Stefano Sanfilippo
2da9bdbb79 Args are already nullable in function call. 2014-11-23 19:21:12 +01:00
Stefano Sanfilippo
386bf40374 Any expression can be case condition. 2014-11-23 19:20:53 +01:00
Stefano Sanfilippo
c7fec8c9e0 Clean up semantic rules. 2014-11-23 19:20:10 +01:00
Stefano Sanfilippo
573a94def6 Factor NEWLINE at statement level. 2014-11-23 19:12:48 +01:00
Stefano Sanfilippo
65b38e33c2 Initial commit. Grammar has some conflicts, no rules. 2014-11-23 19:04:25 +01:00