Max Brunsfeld
0bc1adf0c2
Tweak fields
7 vuotta sitten
Max Brunsfeld
c3965938cc
Add node fields, update tree-sitter-cli
7 vuotta sitten
calixteman
ff4fc1c785
Handle L-strings and L-chars ( #25 )
7 vuotta sitten
calixteman
2945de0173
Fix precedences of * (deref) and & (address-of) ( #21 )
7 vuotta sitten
calixteman
adf868ce9a
Fix parenthesized expression on left side of assignment ( #22 )
7 vuotta sitten
calixteman
fb9fbd83f0
Handle __attribute__ in function declaration ( #19 )
* Handle __attribute__ in function declaration
* Fix tests in examples/
* Remove useless optional
7 vuotta sitten
Calixte Denizet
338f99e8a0
Fix comment containing backslash
7 vuotta sitten
Max Brunsfeld
fd42e75886
Flesh out number literal parsing
Fixes atom/language-c#323
7 vuotta sitten
Max Brunsfeld
175d93b439
Handle postfix type qualifiers in compound literals
Fixes atom/language-c#312
7 vuotta sitten
Max Brunsfeld
95b5710ff9
Allow number literals with 'f' suffix and digit separators
Fixes tree-sitter/tree-sitter-cpp#24
Fixes tree-sitter/tree-sitter-cpp#34
7 vuotta sitten
Max Brunsfeld
5a25ac2983
Allow multiple names to be defined in a typedef statement
Fixes tree-sitter/tree-sitter-cpp#30
7 vuotta sitten
Max Brunsfeld
50c3a02bc7
Allow preprocessor directives in field decl lists
Fixes tree-sitter/tree-sitter-cpp#29
7 vuotta sitten
Max Brunsfeld
1358e07759
Allow escaped newlines in single-line comments
Fixes tree-sitter/tree-sitter-cpp#26
7 vuotta sitten
Max Brunsfeld
7f827b42a8
Add explicit nodes for bitfield clauses
7 vuotta sitten
Max Brunsfeld
176fd5f077
Add signed keyword
Fixes #10
7 vuotta sitten
Max Brunsfeld
2af332790e
Make case statements contain all subsequent statements until the next case
7 vuotta sitten
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 vuotta sitten
Max Brunsfeld
ed56d5e288
Fix array declarator parsing
Refs https://github.com/atom/atom/issues/18346#issuecomment-433734281
7 vuotta sitten
Max Brunsfeld
6744ae08ea
Parse top-level macro invocations
Fixes atom/atom#18346
7 vuotta sitten
Max Brunsfeld
5b5300388e
Add low dynamic precedence on macro_type_specifier
7 vuotta sitten
Max Brunsfeld
07cafeac95
Use dynamic precedence to distinguish pointer declarators from multiplication
8 vuotta sitten
Max Brunsfeld
067d3f9681
Use parenthesized_expression in if, while, do statements
8 vuotta sitten
Max Brunsfeld
df769721cb
Parse escape sequences
8 vuotta sitten
Max Brunsfeld
f8cab65c3a
Allow type qualifier lists in pointer declarators
Fixes tree-sitter/tree-sitter-cpp#7
8 vuotta sitten
Max Brunsfeld
9e21e17371
Allow preprocessor conditionals inside of field declaration lists
Co-Authored-By: Thomas Johansen <thomasjo@gmail.com>
8 vuotta sitten
Max Brunsfeld
95b1b4315e
Add _Atomic and restrict type qualifiers
8 vuotta sitten
Max Brunsfeld
e8b6879820
Use repeat in initializer lists
8 vuotta sitten
Max Brunsfeld
0c38b9f8c9
Handle identifier starting with 'false', 'true', etc
8 vuotta sitten
Max Brunsfeld
a76daa432c
Fix parsing of char16_t, char32_t
8 vuotta sitten
Max Brunsfeld
db8d3af84f
Add #elifs inside of #ifdefs
Signed-off-by: Nathan Sobo <nathan@github.com>
8 vuotta sitten
Max Brunsfeld
065bee2c23
Add preprocessor elif clauses
Signed-off-by: Nathan Sobo <nathan@github.com>
8 vuotta sitten
Max Brunsfeld
fcb4537288
Fix regex for unknown preprocessor directives
Signed-off-by: Nathan Sobo <nathan@github.com>
8 vuotta sitten
Max Brunsfeld
1e1f7c9cf8
Parse typedef names as type_identifiers
8 vuotta sitten
Max Brunsfeld
060b072223
Fix interpretation of 'unsigned' et al as standalone types
8 vuotta sitten
Max Brunsfeld
82b62611b6
Differentiate primitive types from other type names
8 vuotta sitten
Max Brunsfeld
c4ed85b79b
Call inline a storage class specifier like static
8 vuotta sitten
Max Brunsfeld
31c966ece2
Handle multi-line comments with asterisks at the end
8 vuotta sitten
Max Brunsfeld
f433b2bf8a
Tweak identifier naming convention
9 vuotta sitten
Max Brunsfeld
6147b5ecca
Rename label_name -> label, extract rules for identifier renames
9 vuotta sitten
Max Brunsfeld
66003e2afc
Rename type_clause -> type_descriptor and pull out the parens
9 vuotta sitten
Max Brunsfeld
9e7706d922
Distinguish variables, types, fields and labels using renames
9 vuotta sitten
Max Brunsfeld
debe919f84
Allow whitespace after the # in preprocessor directives
9 vuotta sitten
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 vuotta sitten
Max Brunsfeld
eb82660b87
Generalize the ordering of type and declaration specifiers
9 vuotta sitten
Max Brunsfeld
ab0162ce37
Make member_declaration_list its own rule
9 vuotta sitten
Max Brunsfeld
42436c29ae
Allow simple abstract function declarators as in `sizeof(void * ())`
9 vuotta sitten
Max Brunsfeld
39a662907b
Make a named node for argument lists in call expressions
9 vuotta sitten
Max Brunsfeld
281e0cd60d
Add 'u' and 'l' suffixes on number literals
9 vuotta sitten
Max Brunsfeld
eaa878ce95
Allow preprocessor conditionals inside functions
9 vuotta sitten
Max Brunsfeld
e64b56050e
Add preprocessor if blocks
9 vuotta sitten