Nim/compiler
Zahary Karadjov 6216046bc6 genSym support for hygienic macros and templates.
example:
template hygienic(val: expr) =
  var `*x` = val
  echo `*x`

*x was chosen as mnemonic for "opposite of public" and thus private
2012-03-26 04:36:26 +03:00
..
c2nim c2nim, pas2nim compile again 2012-02-29 00:04:34 +01:00
pas2nim c2nim, pas2nim compile again 2012-02-29 00:04:34 +01:00
aliases.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
ast.nim generic types can be used like type classes. distinct can be applied to type classes. 2012-03-25 20:55:21 +03:00
astalgo.nim fix for template redefinition. test cases added. 2012-03-15 14:15:37 +02:00
bitsets.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
ccgcalls.nim bootstraps fine with overloadable templates 2012-03-14 21:00:42 +02:00
ccgexprs.nim `do' keyword in the grammar for lambda blocks 2012-02-10 14:50:35 +02:00
ccgmerge.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
ccgstmts.nim preparations for marker procs generation 2012-03-19 22:11:19 +01:00
ccgthreadvars.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
ccgtrav.nim implemented marker procs for the GC resulting in huge speedups 2012-03-21 23:10:56 +01:00
ccgtypes.nim implemented marker procs for the GC resulting in huge speedups 2012-03-21 23:10:56 +01:00
ccgutils.nim tyOrdinal now means "integral types". tyTypeClass created to take care of type constraints 2012-03-22 16:24:12 +02:00
cgen.nim further steps for closure support 2012-02-08 09:10:59 +01:00
cgendata.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
cgmeth.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
charsets.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
commands.nim first steps for cleaner static/const distinction 2012-03-13 02:01:56 +01:00
condsyms.nim bugfix: type alias to generic; generic type not stripped away from for loop variable 2012-01-07 20:03:41 +01:00
crc.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
depends.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
docgen.nim ERecoverableError exception contains the error message 2012-02-25 12:57:16 +01:00
ecmasgen.nim tyOrdinal now means "integral types". tyTypeClass created to take care of type constraints 2012-03-22 16:24:12 +02:00
evals.nim genSym support for hygienic macros and templates. 2012-03-26 04:36:26 +03:00
extccomp.nim win64 is a supported target; bugfix: nimrod c -r on windows; stdlib uses wide char versions of the WinAPI 2012-03-04 21:44:56 +01:00
filter_tmpl.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
filters.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
highlite.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
idents.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
idgen.nim genSym support for hygienic macros and templates. 2012-03-26 04:36:26 +03:00
importer.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
lambdalifting.nim `do' keyword in the grammar for lambda blocks 2012-02-10 14:50:35 +02:00
lexbase.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
lexer.nim implemented 'static'; macros do not work anymore 2012-03-15 00:28:28 +01:00
lists.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
llstream.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
lookups.nim genSym support for hygienic macros and templates. 2012-03-26 04:36:26 +03:00
magicsys.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
main.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
msgs.nim generic types can be used like type classes. distinct can be applied to type classes. 2012-03-25 20:55:21 +03:00
nimconf.nim project wide configuration file now with suffix '.nimrod.cfg' 2012-01-15 13:54:28 +01:00
nimrod.cfg the current directory is no longer taken into account when resolving module paths 2011-12-11 12:41:06 +02:00
nimrod.dot big repo cleanup 2011-04-12 01:13:42 +02:00
nimrod.ini win64 is a supported target; bugfix: nimrod c -r on windows; stdlib uses wide char versions of the WinAPI 2012-03-04 21:44:56 +01:00
nimrod.nim win64 is a supported target; bugfix: nimrod c -r on windows; stdlib uses wide char versions of the WinAPI 2012-03-04 21:44:56 +01:00
nimsets.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
nversion.nim added 'system.shallow' 2012-02-09 20:13:36 +01:00
options.nim generic types can be used like type classes. distinct can be applied to type classes. 2012-03-25 20:55:21 +03:00
parsecfg.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
parser.nim untyped proc/template/macro params default to expr 2012-03-20 17:44:30 +02:00
passaux.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
passes.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
pbraces.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
pendx.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
platform.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
pragmas.nim merged branch overloading-for-macros 2012-03-19 12:06:38 +02:00
procfind.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
readme.txt big repo cleanup 2011-04-12 01:13:42 +02:00
renderer.nim implemented 'static'; macros do not work anymore 2012-03-15 00:28:28 +01:00
rodread.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
rodutils.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
rodwrite.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
ropes.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
rst.nim ERecoverableError exception contains the error message 2012-02-25 12:57:16 +01:00
sem.nim merged branch overloading-for-macros 2012-03-19 12:06:38 +02:00
semcall.nim allowing definitions of procs and templates to be overridden in local scopes 2012-03-14 21:01:18 +02:00
semdata.nim bootstraps fine with overloadable templates 2012-03-14 21:00:42 +02:00
semexprs.nim genSym support for hygienic macros and templates. 2012-03-26 04:36:26 +03:00
semfold.nim bugfix: semfold supports merging of '&' 2012-02-19 21:01:04 +01:00
semgnrc.nim `do' keyword in the grammar for lambda blocks 2012-02-10 14:50:35 +02:00
seminst.nim generic types can be used like type classes. distinct can be applied to type classes. 2012-03-25 20:55:21 +03:00
semmagic.nim pragma blocks; fixed line information issue with user defined assertions 2012-01-17 23:58:18 +01:00
semstmts.nim expr params implemented for procs; paving the way for type classes 2012-03-22 03:27:00 +02:00
semtempl.nim genSym support for hygienic macros and templates. 2012-03-26 04:36:26 +03:00
semthreads.nim `do' keyword in the grammar for lambda blocks 2012-02-10 14:50:35 +02:00
semtypes.nim generic types can be used like type classes. distinct can be applied to type classes. 2012-03-25 20:55:21 +03:00
semtypinst.nim generic types can be used like type classes. distinct can be applied to type classes. 2012-03-25 20:55:21 +03:00
sigmatch.nim generic types can be used like type classes. distinct can be applied to type classes. 2012-03-25 20:55:21 +03:00
suggest.nim bootstraps fine with overloadable templates 2012-03-14 21:00:42 +02:00
syntaxes.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
tccgen.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
transf.nim tyOrdinal now means "integral types". tyTypeClass created to take care of type constraints 2012-03-22 16:24:12 +02:00
trees.nim further steps to closure support 2012-02-06 00:19:56 +01:00
treetab.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
types.nim generic types can be used like type classes. distinct can be applied to type classes. 2012-03-25 20:55:21 +03:00
wordrecg.nim merged branch overloading-for-macros 2012-03-19 12:06:38 +02:00

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