Zahary Karadjov
9acfc43119
using statement (ala C#) implemented as macro (added as test).
...
simplified the usage of the interpolatedFragments iterator.
2011-09-20 14:13:45 +03:00
Zahary Karadjov
dbcca9b3b9
Moved the parseAST magics to evals.nim
...
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.
2011-09-20 14:13:45 +03:00
Zahary Karadjov
91351e5996
Initial implementation of the parseExpr, parseStmt, getAst macro routines:
...
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.
2011-09-20 14:13:45 +03:00
Zahary Karadjov
d541815e4b
Added AST introspection routines as a part of the standard library
2011-09-20 14:13:45 +03:00
Araq
5112677904
attempt to fix tester.nim file handle leak
2011-08-29 01:13:38 +02:00
Araq
dd190a5c01
more occurences of 'pure' proc pragma fixed
2011-08-20 01:01:46 +02:00
Araq
d560e84fcc
locks now in their own core module
2011-08-20 00:24:02 +02:00
Araq
ffefb736d9
small bugfix for eval
2011-08-19 09:07:23 +02:00
Araq
257b16ca34
inlining of 'var openarray' iterators now work
2011-08-18 18:52:05 +02:00
Araq
2183bf77a6
added xmltree.innerText; fixes #49
2011-08-15 19:40:00 +02:00
Araq
d5dd4669df
further tests for var T result type; ttables test now fails :-(
2011-08-10 01:16:32 +02:00
Araq
72e7a98543
added system.slurp for easy embedding of resources
2011-08-10 00:43:58 +02:00
Araq
7000cf51b7
modifyable results for generics; teventemitter works
2011-08-09 01:40:12 +02:00
Araq
12f22ba68a
fixes #35 , fixes #43
2011-08-08 01:15:09 +02:00
Araq
cb21fd4f8f
json code generation works again
2011-08-07 23:54:03 +02:00
Araq
5131b3cea4
support for C++ code generation; importcpp and importobjc pragmas
2011-08-07 21:02:09 +02:00
Araq
7a6140e3a4
fixes #42
2011-08-04 19:47:35 +02:00
Araq
f0145ba7c5
anonymous procs implemented; however no closure support yet
2011-08-01 08:39:27 +02:00
Araq
dd99fe61c0
documentation for 'var T' as return type
2011-08-01 00:21:16 +02:00
Araq
3e806a374a
'var T' for iterators
2011-07-31 22:39:17 +02:00
Araq
4f7fa05911
void type improvements; documentation improvements
2011-07-31 14:57:38 +02:00
Araq
00da785f5d
void type for generics
2011-07-31 01:11:34 +02:00
Araq
05cffb9370
'is' operator for generic code
2011-07-31 00:55:30 +02:00
Araq
6a8a409f1b
preparation for new 'is' operator; breaks bootstrapping again, sorry (use generated C code)
2011-07-31 00:21:32 +02:00
Araq
086f0d34db
Merge branch 'master' of git@github.com:Araq/Nimrod
2011-07-30 10:43:05 +02:00
Araq
6781da5215
bugfix: forwarding of generic procs now works
2011-07-30 10:42:51 +02:00
Keita Haga
174a711d86
tests/tester.nim: HTML-encode the expected results and actual results before writing them out
2011-07-30 03:23:08 +09:00
Araq
dce8949b9b
bugfix: 'final' not passed to generic
2011-07-29 01:25:05 +02:00
Araq
f622647704
Merge pull request #41 from Amrykid/master
...
Updated events.nim
2011-07-27 16:15:15 -07:00
Amrykid
79dafe08e3
Renamed new* to init*.
...
Added example code for documentation.
Fixed a small documentation issue.
Rewrote newEventEmitter...
Updated test.
2011-07-27 18:04:13 -05:00
Araq
2f066395ba
bugfixes; step one for 'var T' as return type support
2011-07-28 00:53:52 +02:00
Amrykid
5209469fd7
Updated events.nim to use TEventEmitter instead of PEventEmitter.
2011-07-27 17:39:43 -05:00
Araq
0e7f2ca3f1
bugfixes; added events module, sequtils module
2011-07-26 00:46:41 +02:00
Araq
a6daf71520
old pointer deref operator completely removed
2011-07-23 20:19:05 +02:00
Araq
246b8d18a1
tests repaired; serious typo in the allocator fixed; fixes #32
2011-07-22 23:58:19 +02:00
Araq
569c1ce5ec
bugfix: proper cache for generic instantiations
2011-07-21 00:57:39 +02:00
Araq
42e6130b2c
first steps to explicit channels for thread communication; added mainThreadId
2011-07-16 18:34:18 +02:00
Araq
5b96eaa953
preparations for 0.8.12
2011-07-10 15:48:13 +02:00
Araq
99bcc233cd
bugfix: 'set' overloadable; further steps for multi threading support
2011-07-08 01:29:15 +02:00
Araq
5c94a9e1ae
tests are green again
2011-06-28 01:31:53 +02:00
Araq
3091bc4958
importCompilerProc pragma introduced because the hacks for typeinfo.nim did not suffice
2011-06-27 08:33:03 +02:00
Araq
e25384db89
improvements to get code size down for programs that don't use GC
2011-06-26 20:17:19 +02:00
Araq
990dc2d715
code gen bugfixes; marshal.nim implemented
2011-06-26 17:21:52 +02:00
Araq
c3f11d1637
bugfix: invoking a generic iterator twice triggers a code gen bug (titer2)
2011-06-20 01:28:41 +02:00
Araq
8b6f9ef5e8
case branches support constant sets for convenience
2011-06-19 17:45:33 +02:00
Araq
18bec94e22
bugfix: typeinfo generation for tuples
2011-06-19 15:47:10 +02:00
Araq
04f9c2585a
readFile raises EIO instead of returning nil; added system.writeFile
2011-06-16 10:47:44 +02:00
Araq
9a8b39c85b
rebuilt csources; bootstrap should work again
2011-06-15 17:52:04 +02:00
Araq
f7884717c1
bugfix: proper return types for templates
2011-06-15 12:35:47 +02:00
Araq
a15475f582
tuple unpacking is not enforced in for loops anymore
2011-06-15 10:15:32 +02:00