Dave Cunningham
0e67cc3c68
Refactor to allow interleaving optional and positional params
2020-03-05 09:33:21 +01:00
Dave Cunningham
8b2b1ba839
Avoid float overflow errors at parse time.
2020-02-27 23:06:53 +00:00
Dave Cunningham
dc5c94ac78
Add fodder to AST nodes ( #319 )
...
* Preserve fodder during parsing.
2019-09-24 12:11:22 +01:00
Steve Harris
7a5297a884
Dump standard library into "astgen" package
...
Export all fields in struct types in the "ast" package to allow
generating program source to reconstruct their complete values in a
separate package.
2019-06-15 01:34:11 +02:00
Stanisław Barzowski
33b6dcfa53
Keep object locals only once in AST ( #263 )
...
Keep object locals only once in AST
For example this reduces the size of stdlib ast file
roughly 3x. Note that this change doesn't regenerate the stdlib,
so that the diff here is sane.
It is likely to slightly improve performance of code using
a lot of locals (~10% on bench.05.gen.jsonnet).
The desugaring is more strightforward now, and we're back
to desugaring each node exactly once.
2019-05-07 22:43:55 +02:00
Marcelo Cantos
88519c3704
Apply more golint recommendations ( #201 )
...
* Apply more golint recommendations
* Update dumpstdlibast.go to include StdAst comment
* Improve dump.go package comment.
2018-02-28 01:11:18 -05:00
Marcelo Cantos
ed5f280c59
Apply golint recommendations ( #196 )
...
* Apply golint recommendations
2018-02-26 14:12:25 -05:00
Dave Cunningham
2ea01b24d8
Introduce a Parens AST ( #189 )
...
* Introduce a Parens AST
2018-02-16 13:01:14 -05:00
Dave Cunningham
7c8f4d0b12
Call top level function even if there are no TLAs (match cpp semantics) ( #169 )
...
* Call top level function even if there are no TLAs (match cpp semantics)
2018-01-10 20:43:55 -05:00
Stanisław Barzowski
ba0f236b14
Optional eval ( #92 )
...
* Optional arguments
2017-10-10 00:06:14 -04:00
Stanisław Barzowski
f0f70419f8
Clean up some TODOs
...
Some were stale, some were transformed into issues, some were fixed
2017-10-05 22:13:09 -04:00
Stanisław Barzowski
80ce6ac112
Don't escape block strings ( #98 )
...
* Don't escape block strings
2017-10-03 14:29:12 -04:00
Stanisław Barzowski
c3459153df
Location, error formatting and stack trace improvements ( #59 )
...
* Location, error formatting and stack trace improvements
* Static context for AST nodes
* Thunks no longer need `name`
* Prototype for showing snippets in error messages (old format still
available)
* Use ast.Function to represent methods and local function sugar.
* Change tests so that the error output is pretty
2017-10-03 14:27:44 -04:00
Stanisław Barzowski
a1b8248e84
Fix comprehensions ( #90 )
...
* Fix comprehensions
Only first and last forspec was used due to a parser bug.
2017-09-29 23:33:55 -04:00
Stanisław Barzowski
0b52ea4d40
Support for various kinds of strings in imports
2017-09-29 12:34:21 -04:00
Stanisław Barzowski
0c86c9e109
Support of +:, in, in super
...
Also profiling
2017-09-28 22:21:46 -04:00
Stanisław Barzowski
78b4794523
Object comprehensions
2017-09-27 18:00:30 -04:00
Stanisław Barzowski
999ff267f1
Remove unused autogenerated code
2017-09-12 17:10:36 -04:00
Stanisław Barzowski
c26c50c04b
Array comprehensions ( #35 )
...
* Array comprehensions
Implemented using flatMap.
The representation in AST was changed - now it expresses
the semantic structure better.
Ifs in comprehensions are not supported yet, but easy.
2017-09-07 11:55:33 -04:00
Stanisław Barzowski
77b8b9e335
Optional args parser/lexer/ast support ( #33 )
...
* Optional args parser/lexer/ast support
Just "frontend" part. They are ignored during actual execution.
2017-09-06 11:53:10 -04:00
Stanisław Barzowski
b1427d563b
Parser & desugarer support for "in"
2017-08-29 22:14:12 -04:00
Alex Clemmer
ad56a074aa
Move AST to its own package
2017-08-25 00:30:56 -04:00