Commit Graph

65 Commits

Author SHA1 Message Date
Araq
92e10e4b18 implemented 'import except' 2012-11-28 23:54:23 +01:00
Araq
0d19de18cc first steps for the 'export' feature 2012-11-28 02:02:46 +01:00
Araq
c43bf78000 fixed recently introduced parser bugs 2012-11-26 19:31:55 +01:00
Araq
dd9ad9e497 next steps for first class iterators 2012-11-26 02:43:32 +01:00
Araq
538699a281 parser support for 'not nil' annotation 2012-11-25 23:40:42 +01:00
Araq
ccd2934e4a first steps for 'not nil' annotation 2012-11-25 11:03:14 +01:00
Araq
f610d2d221 'iterator' as type description 2012-11-22 08:31:40 +01:00
Araq
7f6633a06f added system.finished for first class iterators 2012-11-17 01:25:32 +01:00
Araq
74acf05e0e bugfix: prevent endless loop in the parser for 'nimrod check' 2012-10-10 00:59:09 +02:00
Zahary Karadjov
d9d82fb0af syntax compatibility between do blocks and stmt blocks
See the section `do notation` in the manual for more info.

* nkMacroStmt has been removed
   Macro statements are now mapped to regular nkCall nodes.
   The support for additional clauses (such as else, except, of, etc)
   have been restored - they will now appear as additional arguments
   for the nkCall node (as nkElse, nkExcept, etc nodes)

* fixed some regressions in the `is` operator and semCompiles
2012-10-04 15:37:26 +03:00
Zahary Karadjov
770d4a997e implemented case expressions 2012-10-03 01:59:49 +03:00
Araq
759b3201ad proc bodies can be expressions with a type 2012-09-22 22:43:36 +02:00
Araq
d3d9d32c35 first steps to deprecate 'nil' statement 2012-09-09 01:08:00 +02:00
Araq
1d14cb1ad8 next steps towards term rewriting macros; simple examples work 2012-08-30 22:55:32 +02:00
Araq
1786e30991 first steps towards term rewriting macros 2012-08-30 10:55:40 +02:00
Araq
f7f6bc2ba3 idetools improvements (2) 2012-08-03 20:31:49 +02:00
Araq
7d6500f1de idetools improvements; preparation of first class iterators; fixes #183 2012-08-02 23:14:38 +02:00
Araq
39235e21f5 bugfixes for the symbol mangling; implements #129 2012-07-19 17:38:52 +02:00
Araq
98fd408adc implemented #133 2012-07-19 16:38:46 +02:00
Araq
e68830a952 improvements for 'bind', fixes #166 2012-07-18 17:21:10 +02:00
Araq
8d99753d63 preparations for making 'closure' the default calling convention for proc types 2012-07-16 23:00:57 +02:00
Araq
94013a4cff ';' as statement separator 2012-07-12 08:17:22 +02:00
Araq
eee99ab272 fixes #112 2012-07-11 18:27:14 +02:00
Araq
b4a9aca2d3 ';' now valid for parameter lists 2012-07-11 18:17:39 +02:00
Araq
48847b5616 documented optional indentation for 'case' statements/'case' objects 2012-06-22 17:47:03 +02:00
Zahary Karadjov
e2d38a57ec better support for unsigned integers. 2012-06-11 21:38:01 +03:00
Zahary Karadjov
4f45097f87 optional indentation for case statements
- preliminary support for try expressions  and case expressions
- allow do forms in assignments and return statements
2012-05-23 02:27:57 +03:00
Zahary Karadjov
b1574bb0e0 stand-alone except and finally blocks
This is equivalent to the on-error and at-scope-exit operators in other languages
2012-05-23 02:25:16 +03:00
Zahary Karadjov
2f4ae65917 produce errors on proc types with implicit empty param lists. 2012-04-20 22:32:36 +03:00
Zahary Karadjov
c1d16c5a4d made built-in types primary expressions to allow infix operators to be used with them 2012-04-20 21:35:59 +03:00
Zahary Karadjov
818787457d grammar: the built-in type classes are now valid expressions 2012-04-18 19:50:32 +03:00
Araq
959e370ae9 @ is a sigil-like operator 2012-04-15 10:02:15 +02:00
Zahary Karadjov
98b7bdaa50 when expressions, proper rendering for nkDo and nkLambda and parser support for x.type and x.addr 2012-04-05 22:43:37 +03:00
Zahary Karadjov
70f5236d48 untyped proc/template/macro params default to expr 2012-03-20 17:44:30 +02:00
Araq
4da067691e implemented 'static'; macros do not work anymore 2012-03-15 00:28:28 +01:00
Araq
375c95d3ad bugfix: no need for arrows to be new token kinds 2012-02-12 18:56:36 +01:00
Zahary Karadjov
560a3bad28 `do' keyword in the grammar for lambda blocks 2012-02-10 14:50:35 +02:00
Araq
78f4aacde9 pragma blocks; fixed line information issue with user defined assertions 2012-01-17 23:58:18 +01:00
Araq
4cfc0462a4 bugfixes: tests are green again 2012-01-13 23:28:08 +01:00
Araq
c682a1da2b bugfix: invalid indentation for 'else' is detected; optional indentation for 'if' expressions 2012-01-13 14:59:58 +01:00
Araq
4f1b89c30c year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
Araq
4012517d6d bugfix: suggest feature 2011-12-22 20:15:02 +01:00
Araq
7fcbdc6d42 implemented 'let' statement 2011-11-29 17:27:48 +01:00
Araq
68be801f63 operator precedence changed: assignment like operators are supported; escaping of operators with \ is supported 2011-11-09 01:42:05 +01:00
Araq
93be594eca fix of recently introduced parsing bug 2011-11-02 19:04:40 +01:00
Araq
1f6725e59e small bugfixes to make more tests green 2011-11-02 02:28:18 +01:00
Araq
351e89e705 better code generation for constant aggregates 2011-11-02 00:55:29 +01:00
Araq
51e01879ba 'bind' as a declarative statement 2011-10-10 02:04:15 +02:00
Araq
c138cc36b4 new syntactic construct: a{i} 2011-10-08 02:14:42 +02:00
Araq
033e3dfc50 l-values are preserved modulo type distinction 2011-09-24 13:15:11 +02:00