summary refs log tree commit diff stats
path: root/compiler/parser.nim
Commit message (Collapse)AuthorAgeFilesLines
* fixes #18847 [backport] (#18870)Andreas Rumpf2021-09-201-2/+3
|
* formal grammar updates [backport:1.2] (#18803)Andreas Rumpf2021-09-041-27/+23
|
* move PNode.comment to a side channel, reducing memory usage during ↵Timothee Cour2021-08-291-5/+9
| | | | | | | | | | | | | | | | | compilation by a factor 1.25x (#18760) * move PNode.comment so a side channel, reducing memory usage * fix a bug * fixup * use sfHasComment to speedup comment lookups * fix for IC * Update compiler/parser.nim Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* fix RFC #341: dot-like operators are now parsed with same precedence as `.` ↵Timothee Cour2021-08-251-5/+29
| | | | | | | | | | | | | | | | | | | | | (#18711) * fix RFC #341: dot-like operators are now parsed with same precedence as `.` * fixup * [skip ci] address comment in changelog * address comment * update grammmar * add manual entry * fixup * -d:nimPreviewDotLikeOps * address comment to unblock PR: move nimPreviewDotLikeOps out of config/config.nims
* support same-line doc comments in routines (#18595)Timothee Cour2021-07-271-0/+7
| | | | * support same-line comments in routines * remove assert as per review comment
* Make error message for empty new-styled concept more descriptive (#18506)konsumlamm2021-07-181-0/+2
| | | | | | | * Allow empty new-styled concept Slightly improve error messages * Make empty new-styled concepts an error
* Fix #16426 (#18377)Clyybber2021-06-281-5/+8
|
* Small parser loop fix (#17904)Clyybber2021-04-301-0/+1
| | | | * Fix loop on error with nim check in semiStmtList * Add test
* refs #15667 improve invalid indentation errors, report when & where `=` ↵Timothee Cour2021-04-101-4/+15
| | | | | | | | | | | could be missing (#16397) * refs #15667 improve invalid indentation errors * also show line info where = is missing * add test * add more tests
* parser.nim: simply layout changeAraq2021-03-301-1/+2
|
* unify tuple expressions (#13793)Arne Döring2021-03-301-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * unify tuple expressions * fix test * fix test * apply feedback * Handle empty tuples * Fix rendering named unary tuple * Protect static NimNode against stripping * Slightly less hacky * Revert "Slightly less hacky" This reverts commit 170c5aec0addc029f637afbc948700ca006b7942. * Slightly less hacky * Cleanup * Fix test * Fix another test * Add condsym * Rebase fallout * changelog: Move from compiler changes to language changes * Add stricter tests * Add empty tuple example to doc/astspec * Fix test Co-authored-by: Clyybber <darkmine956@gmail.com>
* custom integer literals (#17489)Andreas Rumpf2021-03-241-5/+13
| | | | | | | * user defined integer literals; refs #17020 * updated renderer.nim * use mlexerutils helper * imported all test cases from https://github.com/nim-lang/Nim/pull/17020 * final grammar updated
* new-style concepts implementation, WIP (#15251)Andreas Rumpf2021-02-241-5/+11
| | | | | | | | | | | | | * fixes #15210 [backport:1.2] * make tests green * make ordinal work * makes Swapable test compile * make Indexable example work * concepts: 'self' is now 'Self' * concepts: make Dictionary example compile * document the new concept implementation * concepts: make typeDesc work properly * concepts: allow documentation comments (d'oh)
* add finally as post expr block [backport:1.4] (#16896)hlaaftana2021-02-011-1/+5
|
* remove conditionals on nimHasUserErrors, nimNoNilSeqs2, nimNoNilSeqs (#16861)Timothee Cour2021-01-291-2/+0
| | | | | | | | | * cleanup docs for type(nil) | type(nil); simplify nimHasUserErrors * simplify nimNoNilSeqs2 * simplify nimNoNilSeqs * fixup
* Use modern enums in compiler (#15775)cooldome2020-11-021-1/+1
|
* implements https://github.com/nim-lang/RFCs/issues/258 (#15503)Andreas Rumpf2020-10-061-9/+16
| | | | | | | | | * implements https://github.com/nim-lang/RFCs/issues/258 * don't be too strict with custom pragma blocks * cast pragmas: documentation * added most missing inference query procs to effecttraits.nim
* parser hotfix: don't run into endless loops; regression (#15468)Andreas Rumpf2020-10-021-4/+16
|
* Fix #15305 (#15311)Clyybber2020-09-121-2/+1
| | | | | * Fix #15305 * Fix test
* Better semiStmtList parsing (#15123)Clyybber2020-09-091-78/+44
| | | | | | | * Better semiStmtList parsing * Add examples from forums and wiki * Move parseIfExpr near parseIfOrWhen * Update grammar
* Expand hoisted default params in sem (#15270)Clyybber2020-09-051-1/+1
| | | | | | | | | * Expand hoisted default params in sem Introduce ast.newTree{I,IT} Add test for default params in procs * Cleanup * Simplify hoist transformation and expand test
* Big compiler Cleanup (#14777)Clyybber2020-08-281-187/+182
|
* fixes #15111 (#15136)Andreas Rumpf2020-08-011-1/+3
|
* init checks and 'out' parameters (#14521)Andreas Rumpf2020-06-231-1/+5
| | | | | | | | | | | * I don't care about observable stores * enforce explicit initializations * cleaner code for the stdlib * stdlib: use explicit initializations * make tests green * algorithm.nim: set result explicitly * remove out parameters and bring the PR into a mergable state * updated the changelog
* improve the parser's error messageAraq2020-06-191-1/+1
|
* parser.nim: minor refactorings (#14540)Andreas Rumpf2020-06-011-9/+6
|
* make `from` an operator (#14241)hlaaftana2020-05-081-3/+5
|
* make case-object transitions explicit, make unknownLineInfo a const, replace ↵Jasper Jenkins2020-01-171-9/+9
| | | | a few magic numbers with consts (#13170)
* fixes #10665 (#13141) [backport]Andreas Rumpf2020-01-141-22/+26
|
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-191/+190
| | | | | | | | | | | | | | | | | | * Cleanup compiler code base * Unify add calls * Unify len invocations * Unify range operators * Fix oversight * Remove {.procvar.} pragma * initCandidate -> newCandidate where reasonable * Unify safeLen calls
* Fix spellings (#12277) [backport]Federico Ceratto2019-09-271-1/+1
|
* nimpretty: fixes #11616Araq2019-07-181-6/+27
|
* [refactoring] remove unused imports in the compiler and in some stdlib modulesAraq2019-07-181-1/+1
|
* styleCheck: make the compiler and large parts of the stdlib compatible with ↵Araq2019-07-101-3/+3
| | | | --styleCheck:error
* nimpretty: nimpretty now understands splitting newlinesAraq2019-07-041-4/+13
|
* [bugfix] fix #11469, new rules for a newline in nimpretty (#11512)Miran2019-06-261-0/+2
| | | | | * [bugfix] fix #11469, new rules for a newline in nimpretty * concatenate two lines if they have the same indentation level
* [bugfix] nimpretty: fixes #11468Araq2019-06-131-2/+6
|
* nimpretty: smart tabs support, fixes #9399 [bugfix]Andreas Rumpf2019-06-101-21/+34
|
* nimpretty: fixes #10295Araq2019-06-071-0/+2
|
* revert parser stmtListExpr (#11007)cooldome2019-04-171-19/+9
| | | | | | | | | | | | | | | | | * Revert "Support for stmtListExpr in parser after major keywords. Scaled down version. (#10852)" This reverts commit 862897dc0f122e374c0e4d44770ffcd8825e51e3. * redo fix for #4035 * render stmtlistExpr using semicolon * Revert "render stmtlistExpr using semicolon" This reverts commit cafb78b8d5b125b5f6ba94248377a1433b3138cb. * revert test
* relax warning about inconsistent spacing (#10968)Miran2019-04-051-1/+1
| | | | | | Now the warning is raised only in the cases when there is an inconsistency in the style (spacing vs no spacing): * if a> b --> warning * if a > b --> no warning
* fixes #10896 (#10903)Andreas Rumpf2019-03-251-1/+3
|
* fixes #10861 (#10877)cooldome2019-03-211-2/+3
|
* REVERT "optPar"Andrii Riabushenko2019-03-211-3/+2
| | | | This reverts commit 5f1a59216bb79684a5c708978cded1c5d5140574.
* optParAndrii Riabushenko2019-03-211-2/+3
|
* Support for stmtListExpr in parser after major keywords. Scaled down ↵cooldome2019-03-181-10/+21
| | | | | | | version. (#10852) * Support for stmtListExpr in parser after major keywords * fixes #4035
* fixes #10838 (#10841)cooldome2019-03-181-0/+2
| | | | | | * fixes #10838 * reject func in types instead * trigger tests
* Tuple unpacking now works for `for` vars (#10152)Neelesh Chandola2019-02-231-15/+24
| | | | | | | | * Tuple unpacking now works for `for` vars * Give error if length of tuple vars != length of tuple * Fix error message showing wrong tuple length * unpacking now works now for mutable items * Update changelog
* gc: destructors is beginning to work (#10483)Andreas Rumpf2019-01-291-26/+22
| | | | | | | | | | | | | | | | * kochdocs.nim: code cleanup * docgen: nicer indentation * parser.nim: code cleanup * fixes #10458 * make tests green again * make =destroy mixins * gc:destructors: produced C code is almost working * --gc:destructors simple program compiles (but leaks memory) * gc:destructors make examples compile in C++ mode * destructors: string implementation bugfixes * strs.nim: minor code cleanup * destructors: builtin seqs are beginning to work * remove debugging helpers
* Correct lineinfo for accent quoted symbols in proc definition (#10399)alaviss2019-01-211-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * compiler/parser: preserve lineinfo for accent quoted symbols Previously the lineinfo for symbol $$$ in this example is: proc `$$$` ^ After this commit: proc `$$$` ^ * compiler/semstmts: correct lineinfo for accent quoted idents Previously nimsuggest would highlight this as: proc `$$$` ^~~ After this commit: proc `$$$` ^~~ * nimsuggest/tests: add a test for accent quoted proc Disabled by default