Commit Graph

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