Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Parser: Inline expr pragmas with parenthesis | Adam Strzelecki | 2015-06-02 | 1 | -0/+4 |
| | | | | | | | | | | | Previously pragmas could be attached only to whole statements, this change allows attaching pragmas to inline statements, eg.: template rewriteAdd{a + b}(a: expr, b: expr): expr = ({.noRewrite.}: a + b) + 1 Code above will cause a + b to be rewritten once, because rewriteAdd attaches {.noRewrite.} to resulting a + b expr. | ||||
* | Parser: Properly represent parsePar in grammar | Adam Strzelecki | 2015-06-02 | 1 | -4/+6 |
| | |||||
* | fixes #2533 | Araq | 2015-04-24 | 1 | -1/+1 |
| | |||||
* | Merge pull request #2566 from nanoant/parser-diagnostic-location | Andreas Rumpf | 2015-04-24 | 1 | -3/+3 |
|\ | | | | | Parser: Fix location (line, col) for diagnostics | ||||
| * | Parser: Fix location (line, col) for diagnostics | Adam Strzelecki | 2015-04-21 | 1 | -3/+3 |
| | | | | | | | | | | | | | | | | | | | | Previously parser was using lexMessage which was taking location from current buffer position which was pointing after recently consumed token. But since parser shows diagnostics about that token it should point to the location where token starts. This makes diagnostics like: `test.nim(2, 2) Error: ':' expected` point properly at the beginning of the wrong token. | ||||
* | | Parser: Make exprList() not comsume endToken | Adam Strzelecki | 2015-04-20 | 1 | -14/+7 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes use single comcol or eat for multiple cases. Also this makes exprList responsible for consuming only list of expressions, nothing else which is more logical. As a side-effect compiler is now more consistent about errors, eg.: try # <- missing something echo "try" finally: echo "finally" Triggers: test.nim(2, 6) Error: ':' expected try: echo "try" finally # <- missing something echo "finally" Previously triggered: test.nim(4, 6) Error: invalid indentation But now we got: Error: ':' expected - same as in 1st case | ||||
* | | Parser: Use colcom(...) when possible | Adam Strzelecki | 2015-04-20 | 1 | -8/+4 |
|/ | | | | This make parsing obligatory colon more consistent across the parser's code. | ||||
* | Merge branch 'devel' of https://github.com/Araq/Nim into devel | Araq | 2015-04-20 | 1 | -1/+2 |
|\ | |||||
| * | Merge pull request #2503 from ReneSac/arrowLike | Andreas Rumpf | 2015-04-15 | 1 | -1/+2 |
| |\ | | | | | | | Restrict arrow-like operators to those ending with `->`, `~>` or `=>` | ||||
| | * | Minor fixes for arrow like change patch | ReneSac | 2015-04-11 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | | | Don't use ^ operator yet for compatibility with older compilers. Moved arrow like explanation, and fix precedence description on the text in the manual. Fixed typo in news. | ||||
| | * | Changing the rule for arrow like operators again. | ReneSac | 2015-04-10 | 1 | -1/+1 |
| | | | |||||
| | * | Restrict arrow-like operators to start with - or = | ReneSac | 2015-04-09 | 1 | -1/+2 |
| | | | |||||
* | | | parse 'of' branches for macros properly | Araq | 2015-04-19 | 1 | -2/+9 |
|/ / | |||||
* / | minor lexer cleanups; fixes #2504 | Araq | 2015-04-10 | 1 | -1/+1 |
|/ | |||||
* | Refactored getPrecedence() after last change | ReneSac | 2015-04-08 | 1 | -11/+11 |
| | | | | The considerStrongSpaces() is now applied to almost all results, so it is better to do it at the end. | ||||
* | Consider #!strongSpaces for keyword operators too. | ReneSac | 2015-04-08 | 1 | -4/+5 |
| | | | | | When #!strongSpaces is on, every operator affected by it gains priority higher than any operator not affected by it. This includes comparison operators, addition, etc. It seems that counting spaces for keywords operators don't break anything in the parser. Of course, they can't have 0 spaces between their operands, but at least their precedence will work accordingly to their 1+ spaces. | ||||
* | preparations for dealing with the 'echo $foo' gotcha | Araq | 2015-03-27 | 1 | -3/+9 |
| | |||||
* | fixes #2405 | Araq | 2015-03-25 | 1 | -2/+4 |
| | |||||
* | breaking change: 'concept' is now a keyword and used instead of 'generic' | Araq | 2015-03-23 | 1 | -2/+4 |
| | |||||
* | fixes long standing parsing issue with command syntax | Araq | 2015-03-22 | 1 | -15/+26 |
| | |||||
* | fixes #1805 | Araq | 2015-03-21 | 1 | -201/+185 |
| | |||||
* | interpret `tuple` as a class and `tuple[]` as the empty tuple | Max Zerzouri | 2015-03-06 | 1 | -0/+3 |
| | | | | | | | | When the indentation syntax is allowed it is always interpreted as a tuple: type Unit = tuple | ||||
* | fixes #2123 | Araq | 2015-02-14 | 1 | -0/+1 |
| | |||||
* | fixes #2073; language spec change: arrow like operators are not right ↵ | Araq | 2015-02-08 | 1 | -2/+2 |
| | | | | associative anymore | ||||
* | nimsuggest improvements | Araq | 2015-01-30 | 1 | -1/+4 |
| | |||||
* | nimsuggest: first version | Araq | 2015-01-27 | 1 | -6/+11 |
| | |||||
* | 'discard' can be used instead of 'nil' for empty case object branches | Araq | 2015-01-12 | 1 | -3/+3 |
| | |||||
* | Happy new year! | Guillaume Gelin | 2015-01-06 | 1 | -1/+1 |
| | |||||
* | fixes #1120 | Araq | 2014-12-25 | 1 | -2/+6 |
| | |||||
* | fixes #1742 | Araq | 2014-12-24 | 1 | -1/+1 |
| | |||||
* | fixes a small bug concerning semicolons for top level statements | Araq | 2014-12-23 | 1 | -2/+4 |
| | |||||
* | implemented arrow like operators | Araq | 2014-12-08 | 1 | -23/+22 |
| | |||||
* | implements 'defer' | Araq | 2014-12-04 | 1 | -4/+6 |
| | |||||
* | fixes #1473 | Araq | 2014-11-12 | 1 | -4/+5 |
| | |||||
* | Nimrod renamed to Nim | Araq | 2014-08-28 | 1 | -2/+2 |
| | |||||
* | renamefest | Araq | 2014-08-23 | 1 | -1/+1 |
| | |||||
* | fixes #1161 | Araq | 2014-07-01 | 1 | -9/+12 |
| | |||||
* | fix tokenizing bug | flaviut | 2014-06-08 | 1 | -8/+13 |
| | |||||
* | fix overlooked grammer comment | flaviut | 2014-06-08 | 1 | -0/+1 |
| | |||||
* | updated grammer, fixed oversight | flaviut | 2014-06-04 | 1 | -1/+1 |
| | |||||
* | fix bug with unexpected tkInvalid,tkEof,tkComment | flaviut | 2014-06-04 | 1 | -0/+2 |
| | |||||
* | Clean up code | flaviut | 2014-06-03 | 1 | -12/+7 |
| | |||||
* | Fix accents in enums | flaviut | 2014-06-03 | 1 | -3/+5 |
| | |||||
* | Generalize accent parsing | flaviut | 2014-06-03 | 1 | -20/+9 |
| | |||||
* | Document parser structures and procedures. | Clay Sweetser | 2014-05-25 | 1 | -20/+39 |
| | |||||
* | new concurrency model: first steps; shared is not a keyword anymore | Araq | 2014-04-14 | 1 | -2/+1 |
| | |||||
* | implemented 'R ptr T' syntax | Araq | 2014-04-13 | 1 | -1/+1 |
| | |||||
* | fixes #992 | Araq | 2014-03-26 | 1 | -0/+2 |
| | |||||
* | implements ``distinct with/without X, Y`` | Zahary Karadjov | 2014-03-20 | 1 | -16/+28 |
| | | | | | | This still doesn't work quite right, because some common operations like array indexing lay completely outside the scope/symbol lookup system - they are not even magics. | ||||
* | allow multi-line expressions using the dot operator | Zahary Karadjov | 2014-03-16 | 1 | -6/+10 |
| | | | | | | | | | | | | this enables parsing of expressions like: ``` Nimrod s.items .map(proc (x): auto = x * 2) .filter do (x) -> auto: return x % 2 == 0 .group_by((x) => x.length) ``` |