Nim/compiler
Adam Strzelecki 0da4d6b755 Parser: Make exprList() not comsume endToken
This makes use single comcol or eat for multiple cases. Also this makes
exprList responsible for consuming only list of expressions, nothing else which
is more logical.

As a side-effect compiler is now more consistent about errors, eg.:

    try # <- missing something
      echo "try"
    finally:
      echo "finally"

Triggers: test.nim(2, 6) Error: ':' expected

    try:
      echo "try"
    finally # <- missing something
      echo "finally"

Previously triggered: test.nim(4, 6) Error: invalid indentation

But now we got: Error: ':' expected - same as in 1st case
2015-04-20 21:06:03 +02:00
..
nimfix Changed project relative path to include the right directory. 2015-02-20 18:31:39 +01:00
nimsuggest Fixes NimSuggest's socket mode. 2015-02-24 18:05:13 +00:00
aliases.nim updated the compiler to use the new symbol names 2014-08-28 23:48:42 +02:00
ast.nim Merge branch 'devel' of https://github.com/Araq/Nim into devel 2015-04-20 11:44:54 +02:00
astalgo.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
bitsets.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
canonicalizer.nim compiler_ropes: ropeToStr -> $ 2015-04-01 22:32:15 +08:00
ccgcalls.nim importing of C++ nested generics like std::vector<T>::iterator, using the apostrophe operator 2015-04-13 23:49:41 +03:00
ccgexprs.nim fixes a serious codegen bug that caused to emit wrong barriers in rare cases 2015-04-19 13:36:22 +02:00
ccgmerge.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
ccgstmts.nim implements .goto support for variables 2015-04-19 02:42:40 +02:00
ccgthreadvars.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
ccgtrav.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
ccgtypes.nim importing of C++ nested generics like std::vector<T>::iterator, using the apostrophe operator 2015-04-13 23:49:41 +03:00
ccgutils.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
cgen.nim Merge pull request #2426 from def-/fix-1460 2015-04-09 09:36:18 +02:00
cgendata.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
cgmeth.nim Merge branch 'devel' into bigbreak 2014-11-03 22:50:55 +01:00
commands.nim re-enable git hash compiler info 2015-04-11 10:01:08 +02:00
condsyms.nim macros.PNimrodNode is now NimNode 2015-02-24 00:13:27 +01:00
crc.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
depends.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
docgen.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
docgen2.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
evaltempl.nim fixes #1940; code breakage! stricter template evaluation 2015-03-07 15:43:36 +01:00
extccomp.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
filter_tmpl.nim Replaced deprecated repeatChar() with repeat() or spaces(). 2015-03-04 03:30:43 +01:00
filters.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
forloops.nim minor documentation updates 2015-02-16 02:56:40 +01:00
guards.nim fixes #2359 2015-03-16 23:24:33 +01:00
hlo.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
idents.nim nimsuggest: first version 2015-01-27 01:36:19 +01:00
idgen.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
importer.nim prepare for upcoming parsing change of unary operators 2015-03-22 09:31:15 +01:00
installer.ini Fix installer path for nim.nim.cfg 2015-03-28 15:08:29 +01:00
jsgen.nim fixes #2476 2015-04-19 02:43:19 +02:00
jstypes.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
lambdalifting.nim first implementation of overloading of '='; missing: rewriting let/var sections 2015-04-06 23:21:51 +02:00
lexer.nim minor lexer cleanups; fixes #2504 2015-04-10 14:03:48 +02:00
lists.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
llstream.nim Make reading from stdin work again. 2015-03-01 00:16:46 +01:00
lookups.nim don't generate memset calls for C++ objects 2015-03-18 11:42:36 +01:00
lowerings.nim first implementation of overloading of '='; missing: rewriting let/var sections 2015-04-06 23:21:51 +02:00
magicsys.nim implemented 'guard' annotation 2014-09-21 18:39:00 +02:00
main.nim Initialize c compiler variables later ... 2015-03-28 15:07:55 +01:00
modules.nim Make compiler read files from stdin 2015-02-22 23:23:22 +01:00
msgs.nim importing of C++ nested generics like std::vector<T>::iterator, using the apostrophe operator 2015-04-13 23:49:41 +03:00
nim.nim When compiling from stdin write binary to stdinfile 2015-02-28 23:35:35 +01:00
nim.nim.cfg fixed the tester; more tests green 2015-03-10 12:32:48 +01:00
nimblecmd.nim Fix typos 2015-02-15 16:20:32 +00:00
nimconf.nim Merge pull request #2058 from def-/nimrod-cfgs 2015-02-07 18:11:00 +01:00
nimeval.nim Make nimeval compile 2015-01-12 23:04:53 +01:00
nimlexbase.nim Replaced deprecated repeatChar() with repeat() or spaces(). 2015-03-04 03:30:43 +01:00
nimsets.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
nodejs.nim Move lib/pure/nodejs to compiler/nodejs. Ref #2017. 2015-01-28 14:58:31 +00:00
nversion.nim Happy new year! 2015-01-06 15:26:33 +01:00
options.nim doc updates; fixes 'inc' for 'char' 2015-03-29 13:16:22 +02:00
parampatterns.nim implemented a[^1] notation 2015-03-26 02:12:38 +01:00
parser.nim Parser: Make exprList() not comsume endToken 2015-04-20 21:06:03 +02:00
passaux.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
passes.nim GC: get rid of pathological behaviour for stack marking 2015-03-08 13:08:19 +01:00
patterns.nim Fix typos 2015-02-15 16:20:32 +00:00
pbraces.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
platform.nim codegen doesn't produce line tracing commands anymore; fixes #1344 2015-03-21 20:38:27 +01:00
pragmas.nim implements .goto support for variables 2015-04-19 02:42:40 +02:00
procfind.nim Fix #1561 2014-10-29 18:57:03 -04:00
readme.txt Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
renderer.nim fixes #2509 2015-04-11 10:01:10 +02:00
rodread.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
rodutils.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
rodwrite.nim compiler_ropes: ropeToStr -> $ 2015-04-01 22:32:15 +08:00
ropes.nim compiler_ropes: more lib_ropes porting 2015-04-08 23:30:03 +08:00
saturate.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
sem.nim first implementation of overloading of '='; missing: rewriting let/var sections 2015-04-06 23:21:51 +02:00
semasgn.nim overloading of '=' works 2015-04-06 23:21:52 +02:00
semcall.nim fixes #2420; negative indexing for slicing is obsolete (breaking change!) 2015-03-28 00:15:04 +01:00
semdata.nim fixes #2481 2015-04-10 14:03:49 +02:00
semdestruct.nim fixes #2420; negative indexing for slicing is obsolete (breaking change!) 2015-03-28 00:15:04 +01:00
semexprs.nim fixes #2481 2015-04-10 14:03:49 +02:00
semfields.nim fixes #2134 2015-02-20 20:01:25 +01:00
semfold.nim fixes #2448 2015-04-10 14:40:53 +02:00
semgnrc.nim interpret tuple as a class and tuple[] as the empty tuple 2015-03-06 12:20:15 +13:00
seminst.nim fixes #2509 2015-04-11 10:01:10 +02:00
semmacrosanity.nim Happy new year! 2015-01-06 15:26:33 +01:00
semmagic.nim fixes #2420; negative indexing for slicing is obsolete (breaking change!) 2015-03-28 00:15:04 +01:00
semparallel.nim disjoint checker works with the new countup iterators 2015-03-14 01:26:32 +01:00
sempass2.nim fixes #2509 2015-04-11 10:01:10 +02:00
semstmts.nim fixes #2508 2015-04-11 10:01:10 +02:00
semtempl.nim don't store the scope for routines 2015-04-04 01:19:31 +02:00
semtypes.nim fixes #1658 2015-04-11 10:01:12 +02:00
semtypinst.nim fixes #2509 2015-04-11 10:01:10 +02:00
service.nim Make compiler read files from stdin 2015-02-22 23:23:22 +01:00
sigmatch.nim fixes #2481 2015-04-10 14:03:49 +02:00
suggest.nim removed dead code 2015-01-30 03:04:46 +01:00
syntaxes.nim nimsuggest: sane dirty buffer handling 2015-01-29 03:08:41 +01:00
tccgen.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
testability.nim distinguish between 'defined' and 'declared' 2014-08-11 20:38:28 +02:00
transf.nim 'constructor' pragma for C++ support 2015-03-18 11:42:37 +01:00
trees.nim VM: minor fixes to make lexim work 2015-04-20 11:36:13 +02:00
treetab.nim tables work in 'const' sections; echo supports 'nil' strings; minor cleanups 2015-02-09 00:08:55 +01:00
types.nim implemented a[^1] notation 2015-03-26 02:12:38 +01:00
typesrenderer.nim interpret tuple as a class and tuple[] as the empty tuple 2015-03-06 12:20:15 +13:00
vm.nim VM: minor fixes to make lexim work 2015-04-20 11:36:13 +02:00
vmdef.nim VM: minor fixes to make lexim work 2015-04-20 11:36:13 +02:00
vmdeps.nim concept types are represented with getType() 2015-04-13 14:57:23 -05:00
vmgen.nim VM: minor fixes to make lexim work 2015-04-20 11:36:13 +02:00
vmhooks.nim Happy new year! 2015-01-06 15:26:33 +01:00
vmops.nim Happy new year! 2015-01-06 15:26:33 +01:00
wordrecg.nim breaking change: 'concept' is now a keyword and used instead of 'generic' 2015-03-23 13:10:18 +01:00

This directory contains the Nim compiler written in Nim. Note that this
code has been translated from a bootstrapping version written in Pascal, so
the code is **not** a poster child of good Nim code.