summary refs log tree commit diff stats
path: root/compiler/semstmts.nim
Commit message (Collapse)AuthorAgeFilesLines
* syntax compatibility between do blocks and stmt blocksZahary Karadjov2012-10-041-14/+30
| | | | | | | | | | | | 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
* fixes #73Araq2012-09-231-1/+1
|
* bugfix: 'result' cannot be captured in a closureAraq2012-09-231-2/+3
|
* proc bodies can be expressions with a typeAraq2012-09-221-1/+1
|
* semExpr/semStmt mergedAraq2012-09-131-157/+45
|
* small bugfixes; reactivated tests/compileAraq2012-09-111-0/+2
|
* first steps to deprecate 'nil' statementAraq2012-09-091-4/+9
|
* term rewriting improvementsAraq2012-09-081-4/+4
|
* term rewriting macros fully implemented; still buggyAraq2012-09-031-0/+2
|
* next steps towards term rewriting macros; simple examples workAraq2012-08-301-11/+5
|
* first steps towards term rewriting macrosAraq2012-08-301-2/+13
|
* parameter passing works the same for macros and templates; use callsite ↵Araq2012-08-281-3/+0
| | | | magic to access the invokation AST
* implemented generic templatesAraq2012-08-271-6/+5
|
* bindSym suffices; no 'bind' for macros anymoreAraq2012-08-251-18/+0
|
* implemented 'bind' for macrosAraq2012-08-241-0/+18
|
* next steps to hygienic templatesAraq2012-08-201-10/+6
|
* first steps to make templates hygienicAraq2012-08-201-12/+14
|
* next steps for tyVarargs/tyOpenArray splitAraq2012-08-141-1/+1
|
* made tests green againAraq2012-08-141-1/+3
|
* top level closures should work; transf is not a pass anymore; next steps for ↵Araq2012-08-131-27/+36
| | | | first class iterator support
* idetools: 'usages' and 'def' should work now; documented js backendAraq2012-08-051-3/+6
|
* idetools improvements; preparation of first class iterators; fixes #183Araq2012-08-021-9/+12
|
* made compiler more robust for idetools; implemented idetools.usagesAraq2012-07-301-5/+5
|
* more improvements for idetoolsAraq2012-07-301-2/+6
|
* better error handling for better idetools supportAraq2012-07-291-71/+67
|
* added warning for confusing var declarationsAraq2012-07-261-0/+3
|
* bugfixes for the symbol mangling; implements #129Araq2012-07-191-0/+9
|
* preparations for making 'closure' the default calling convention for proc typesAraq2012-07-161-1/+1
|
* 'addSon' for types deprecated for 'int literal type' analysis (3)Araq2012-07-091-2/+2
|
* 'addSon' for types deprecated for 'int literal type' analysis (2)Araq2012-07-091-3/+3
|
* bugfix: ha.echo should be acceptedAraq2012-07-081-2/+3
|
* added proc annotations: macros invoked as pragmasAraq2012-06-261-0/+36
|
* doc2 improvementsAraq2012-06-241-2/+2
|
* bugfixes for closuresAraq2012-06-211-1/+1
|
* added another macro regressionAraq2012-06-201-1/+1
|
* destructor pragmaZahary Karadjov2012-06-071-6/+6
|
* destructors for case valuesZahary Karadjov2012-06-071-16/+61
|
* fix bootstrapping on POSIX platformsZahary Karadjov2012-06-061-0/+4
|
* generate default destructorsZahary Karadjov2012-06-061-8/+98
|
* Merge branch 'master' of github.com:Araq/Nimrod into upstreamZahary Karadjov2012-06-021-2/+6
|\
| * added system.||; lacks runtime supportAraq2012-05-231-2/+6
| |
* | Added system.staticExec proc for executing external command at compile-timeZahary Karadjov2012-06-021-1/+1
| |
* | codegen for user-defined destructorsZahary Karadjov2012-05-251-1/+71
| |
* | stand-alone except and finally blocksZahary Karadjov2012-05-231-7/+27
|/ | | | This is equivalent to the on-error and at-scope-exit operators in other languages
* compiler finally supports 'object {.pragma.}' syntaxAraq2012-04-161-1/+1
|
* avoid duplicated variable names in unrolled loopsZahary Karadjov2012-04-151-2/+6
|
* fixes #20 properlyZahary Karadjov2012-04-151-3/+2
|
* fix the usage of definedInScope in pegs.=~Zahary Karadjov2012-04-141-1/+1
| | | | | | | | | | | | | | | | template `=~`*(s: string, pattern: TPeg): bool = when not definedInScope(matches): var matches: array[0..maxSubpatterns-1, string] It seems that this never worked as intended. I discovered it now, because when variables' names are preserved, multiple variables named `matches` were created. The reason this happens is that when the template is used as an if condition, the if scope is already entered, but the variables end up in the outer scope. This patch is consistent with how `expr` templates work, but makes the definition of a variable injection template like := a bit harder, yet still possible. (note that if foo := bar(): is still not creating properly scoped variable prior to the patch)
* experimental support for preserving local variable names in the generated codeZahary Karadjov2012-04-131-1/+11
|
* when expressions, proper rendering for nkDo and nkLambda and parser support ↵Zahary Karadjov2012-04-051-2/+2
| | | | for x.type and x.addr