Max Brunsfeld
ce980349b2
Fix preprocessor argument parsing with CRLF line endings
Fixes #11
7 лет назад
Max Brunsfeld
176fd5f077
Add signed keyword
Fixes #10
7 лет назад
Max Brunsfeld
2af332790e
Make case statements contain all subsequent statements until the next case
7 лет назад
Max Brunsfeld
6cbb20b681
Allow any sort of statement at the top level, not just calls
This way, we can parse snippets of C, like expressions, in the
case where C code is injected into a larger document.
7 лет назад
Max Brunsfeld
ed56d5e288
Fix array declarator parsing
Refs https://github.com/atom/atom/issues/18346#issuecomment-433734281
7 лет назад
Max Brunsfeld
6744ae08ea
Parse top-level macro invocations
Fixes atom/atom#18346
7 лет назад
Max Brunsfeld
5b5300388e
Add low dynamic precedence on macro_type_specifier
7 лет назад
Max Brunsfeld
07cafeac95
Use dynamic precedence to distinguish pointer declarators from multiplication
8 лет назад
Max Brunsfeld
9e8ac821e4
Don't allow whitespace inside of string literals
8 лет назад
Max Brunsfeld
067d3f9681
Use parenthesized_expression in if, while, do statements
8 лет назад
Max Brunsfeld
288d6b2b1c
Use immediate tokens for preprocessor functions
8 лет назад
Max Brunsfeld
df769721cb
Parse escape sequences
8 лет назад
Max Brunsfeld
f8cab65c3a
Allow type qualifier lists in pointer declarators
Fixes tree-sitter/tree-sitter-cpp#7
8 лет назад
Max Brunsfeld
3a185d00e2
Add explicit word token
Refs https://github.com/tree-sitter/tree-sitter/pull/176
8 лет назад
Max Brunsfeld
9e21e17371
Allow preprocessor conditionals inside of field declaration lists
Co-Authored-By: Thomas Johansen <thomasjo@gmail.com>
8 лет назад
Max Brunsfeld
cc0dff55a0
Don't allow newlines in system lib strings
8 лет назад
Max Brunsfeld
95b1b4315e
Add _Atomic and restrict type qualifiers
8 лет назад
Max Brunsfeld
e8b6879820
Use repeat in initializer lists
8 лет назад
Max Brunsfeld
0c38b9f8c9
Handle identifier starting with 'false', 'true', etc
8 лет назад
Max Brunsfeld
a76daa432c
Fix parsing of char16_t, char32_t
8 лет назад
Max Brunsfeld
3a97441df7
Require a line break after an unknown preprocessor directive
8 лет назад
Max Brunsfeld
e6c28cafb3
Avoid relying on old, non-standard tree-sitter regex feature
8 лет назад
Max Brunsfeld
db8d3af84f
Add #elifs inside of #ifdefs
Signed-off-by: Nathan Sobo <nathan@github.com>
8 лет назад
Max Brunsfeld
065bee2c23
Add preprocessor elif clauses
Signed-off-by: Nathan Sobo <nathan@github.com>
8 лет назад
Max Brunsfeld
fcb4537288
Fix regex for unknown preprocessor directives
Signed-off-by: Nathan Sobo <nathan@github.com>
8 лет назад
Max Brunsfeld
1e1f7c9cf8
Parse typedef names as type_identifiers
8 лет назад
Max Brunsfeld
060b072223
Fix interpretation of 'unsigned' et al as standalone types
8 лет назад
Max Brunsfeld
82b62611b6
Differentiate primitive types from other type names
8 лет назад
Max Brunsfeld
d80749fc3f
Boost the dynamic precedence of parameter lists (mostly for C++)
8 лет назад
Max Brunsfeld
c4ed85b79b
Call inline a storage class specifier like static
8 лет назад
Max Brunsfeld
31c966ece2
Handle multi-line comments with asterisks at the end
8 лет назад
Max Brunsfeld
f433b2bf8a
Tweak identifier naming convention
9 лет назад
Max Brunsfeld
809cd89afe
Use new alias API
9 лет назад
Max Brunsfeld
6147b5ecca
Rename label_name -> label, extract rules for identifier renames
9 лет назад
Max Brunsfeld
b8509fdf21
Function calls have higher precedence than unary operators
9 лет назад
Max Brunsfeld
7775b575e6
Differentiate between top-level items and those that appear in statement blocks
9 лет назад
Max Brunsfeld
66003e2afc
Rename type_clause -> type_descriptor and pull out the parens
9 лет назад
Max Brunsfeld
9e7706d922
Distinguish variables, types, fields and labels using renames
9 лет назад
Max Brunsfeld
debe919f84
Allow whitespace after the # in preprocessor directives
9 лет назад
Max Brunsfeld
d9c324ffce
Don't try to parse #if conditions as C expressions
Doing this required treating the newline that follows these conditions as significant
in order to avoid conflicts, but this caused problems for error recovery.
9 лет назад
Max Brunsfeld
eb82660b87
Generalize the ordering of type and declaration specifiers
9 лет назад
Max Brunsfeld
3f65e85781
Reuse declaration_specifiers rule in more places
9 лет назад
Max Brunsfeld
ab0162ce37
Make member_declaration_list its own rule
9 лет назад
Max Brunsfeld
42436c29ae
Allow simple abstract function declarators as in `sizeof(void * ())`
9 лет назад
Max Brunsfeld
34245e5ba8
Export precedences (so C++ grammar can use them)
9 лет назад
Max Brunsfeld
39a662907b
Make a named node for argument lists in call expressions
9 лет назад
Max Brunsfeld
281e0cd60d
Add 'u' and 'l' suffixes on number literals
9 лет назад
Max Brunsfeld
eaa878ce95
Allow preprocessor conditionals inside functions
9 лет назад
Max Brunsfeld
e64b56050e
Add preprocessor if blocks
9 лет назад
Max Brunsfeld
8e8a968e3b
Fix handling of backslashes in string literals
9 лет назад