summary refs log tree commit diff stats
path: root/compiler/semexprs.nim
Commit message (Collapse)AuthorAgeFilesLines
* 'bind' as a declarative statementAraq2011-10-101-1/+2
|
* new syntactic construct: a{i}Araq2011-10-081-6/+12
|
* slurp uses path; unidecode is improved and threadsafeAraq2011-10-081-1/+1
|
* Cleaned up the circular dependecies and remaining issuesZahary Karadjov2011-10-071-20/+5
| | | | Changed: The []= operator for strings and sequences is now capable of splicing
* getAst works correctly with existing AST values as template/macro argumentsZahary Karadjov2011-10-071-11/+37
|
* code generator supports constant sequences; more consistent compile time ↵Araq2011-10-071-21/+23
| | | | evaluation
* bugfix: overloading resolution for typeofAraq2011-09-271-6/+8
|
* renamed optional to discardableAraq2011-09-241-1/+1
|
* implemented optional pragma for implicit discardAraq2011-09-241-2/+4
|
* l-values are preserved modulo type distinctionAraq2011-09-241-0/+4
|
* beginning of a taint mode; type system enhancementsAraq2011-09-241-1/+1
|
* fixed some newly introduced bugsAraq2011-09-211-4/+3
|
* using statement (ala C#) implemented as macro (added as test).Zahary Karadjov2011-09-201-1/+1
| | | | simplified the usage of the interpolatedFragments iterator.
* Moved the parseAST magics to evals.nimZahary Karadjov2011-09-201-36/+6
| | | | | | | | | | | | | | Added string interpolation helper routines in parserutils Added a proof-of-concept string interpolation user-land macros (currently, only as a test case): the interpolated expression could either be transformed to concat("literal string ", $(interpolated), " end") or "literal string $1 end" % [$(interpolated)] Added a very initial definition of Optional[T] generic type A new overload of ParseIdent was added in hope to get around the fact that the old one doesn't work correctly in macros, but the problem persists.
* Quick Fix:Zahary Karadjov2011-09-201-1/+1
| | | | | | | | | | | Constant expressions used in when statements and tuple indexing are properly evaluated now Even further step tested to be OK: ```nimrod proc semConstExpr(c: PContext, n: PNode): PNode = result = semAndEvalConstExpr(c, n) ```
* Initial implementation of the parseExpr, parseStmt, getAst macro routines:Zahary Karadjov2011-09-201-12/+64
| | | | | | | | | | | | | | | | | | proc parseExpr*(s: string) : expr {.magic: "ParseExprToAst".} ## Compiles the passed string to its AST representation ## Expects a single expression proc parseStmt*(s: string) : stmt {.magic: "ParseStmtToAst".} ## Compiles the passed string to its AST representation ## Expects one or more statements proc getAst*(macroOrTemplate: expr): expr {.magic: "ExpandMacroToAst".} ## Obtains the AST nodes returned from a macro or template invocation ## example: ## macro FooMacro() = ## var ast = getAst(BarTemplate()) Handling of the node.toYaml magic moved to the evaluation engine.
* Added AST introspection routines as a part of the standard libraryZahary Karadjov2011-09-201-0/+7
|
* bugfixes for generics; new threads implementation still brokenAraq2011-09-201-2/+3
|
* finally got rid of nkPassAsOpenArrayAraq2011-08-161-2/+1
|
* added system.slurp for easy embedding of resourcesAraq2011-08-101-0/+16
|
* support for C++ code generation; importcpp and importobjc pragmasAraq2011-08-071-1/+1
|
* 'var T' for iteratorsAraq2011-07-311-0/+9
|
* void type for genericsAraq2011-07-311-10/+0
|
* 'is' operator for generic codeAraq2011-07-311-16/+7
|
* preparation for new 'is' operator; breaks bootstrapping again, sorry (use ↵Araq2011-07-311-2/+22
| | | | generated C code)
* bugfix: 'final' not passed to genericAraq2011-07-291-1/+1
|
* bugfixes; step one for 'var T' as return type supportAraq2011-07-281-23/+65
|
* old pointer deref operator completely removedAraq2011-07-231-2/+2
|
* bugfix: 'set' overloadable; further steps for multi threading supportAraq2011-07-081-26/+25
|
* bugfix: shallowCopy should not break bootstrapping anymore; encodings.nim ↵Araq2011-06-211-5/+9
| | | | for windows improved
* zipfiles compiles again; added system.shallowCopyAraq2011-06-201-66/+139
|
* intsets are now a proper module and part of the stdlibAraq2011-06-141-3/+2
|
* further improvements for thread analysisAraq2011-06-131-5/+2
|
* basic thread analysis workingAraq2011-06-131-1/+2
|
* first (non working) implementation of global thread analysisAraq2011-06-131-0/+6
|
* basic generic collections implemented and testedAraq2011-06-071-4/+4
|
* bugfix: generic instantiation across module boundariesAraq2011-06-061-9/+14
|
* overloading of [] for derefence operation should be possible nowAraq2011-06-051-3/+5
|
* threads clean up their heapAraq2011-06-041-0/+2
|
* cleaned up the tests; fixes #30; fixes #26Araq2011-05-011-17/+15
|
* slice support in system.nim; syntactic sugar for tables; cleanup of ↵Araq2011-04-231-39/+28
| | | | grammar/parser
* slices are first class citizensAraq2011-04-221-11/+17
|
* big repo cleanupAraq2011-04-121-0/+1092