Max Brunsfeld
9e8ac821e4
Don't allow whitespace inside of string literals
8 yıl önce
Max Brunsfeld
067d3f9681
Use parenthesized_expression in if, while, do statements
8 yıl önce
Max Brunsfeld
288d6b2b1c
Use immediate tokens for preprocessor functions
8 yıl önce
Max Brunsfeld
df769721cb
Parse escape sequences
8 yıl önce
Max Brunsfeld
f8cab65c3a
Allow type qualifier lists in pointer declarators
Fixes tree-sitter/tree-sitter-cpp#7
8 yıl önce
Max Brunsfeld
3a185d00e2
Add explicit word token
Refs https://github.com/tree-sitter/tree-sitter/pull/176
8 yıl önce
Max Brunsfeld
9e21e17371
Allow preprocessor conditionals inside of field declaration lists
Co-Authored-By: Thomas Johansen <thomasjo@gmail.com>
8 yıl önce
Max Brunsfeld
cc0dff55a0
Don't allow newlines in system lib strings
8 yıl önce
Max Brunsfeld
95b1b4315e
Add _Atomic and restrict type qualifiers
8 yıl önce
Max Brunsfeld
e8b6879820
Use repeat in initializer lists
8 yıl önce
Max Brunsfeld
0c38b9f8c9
Handle identifier starting with 'false', 'true', etc
8 yıl önce
Max Brunsfeld
a76daa432c
Fix parsing of char16_t, char32_t
8 yıl önce
Max Brunsfeld
3a97441df7
Require a line break after an unknown preprocessor directive
8 yıl önce
Max Brunsfeld
e6c28cafb3
Avoid relying on old, non-standard tree-sitter regex feature
8 yıl önce
Max Brunsfeld
db8d3af84f
Add #elifs inside of #ifdefs
Signed-off-by: Nathan Sobo <nathan@github.com>
8 yıl önce
Max Brunsfeld
065bee2c23
Add preprocessor elif clauses
Signed-off-by: Nathan Sobo <nathan@github.com>
8 yıl önce
Max Brunsfeld
fcb4537288
Fix regex for unknown preprocessor directives
Signed-off-by: Nathan Sobo <nathan@github.com>
8 yıl önce
Max Brunsfeld
1e1f7c9cf8
Parse typedef names as type_identifiers
8 yıl önce
Max Brunsfeld
060b072223
Fix interpretation of 'unsigned' et al as standalone types
8 yıl önce
Max Brunsfeld
82b62611b6
Differentiate primitive types from other type names
8 yıl önce
Max Brunsfeld
d80749fc3f
Boost the dynamic precedence of parameter lists (mostly for C++)
8 yıl önce
Max Brunsfeld
c4ed85b79b
Call inline a storage class specifier like static
8 yıl önce
Max Brunsfeld
31c966ece2
Handle multi-line comments with asterisks at the end
8 yıl önce
Max Brunsfeld
f433b2bf8a
Tweak identifier naming convention
9 yıl önce
Max Brunsfeld
809cd89afe
Use new alias API
9 yıl önce
Max Brunsfeld
6147b5ecca
Rename label_name -> label, extract rules for identifier renames
9 yıl önce
Max Brunsfeld
b8509fdf21
Function calls have higher precedence than unary operators
9 yıl önce
Max Brunsfeld
7775b575e6
Differentiate between top-level items and those that appear in statement blocks
9 yıl önce
Max Brunsfeld
66003e2afc
Rename type_clause -> type_descriptor and pull out the parens
9 yıl önce
Max Brunsfeld
9e7706d922
Distinguish variables, types, fields and labels using renames
9 yıl önce
Max Brunsfeld
debe919f84
Allow whitespace after the # in preprocessor directives
9 yıl önce
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 yıl önce
Max Brunsfeld
eb82660b87
Generalize the ordering of type and declaration specifiers
9 yıl önce
Max Brunsfeld
3f65e85781
Reuse declaration_specifiers rule in more places
9 yıl önce
Max Brunsfeld
ab0162ce37
Make member_declaration_list its own rule
9 yıl önce
Max Brunsfeld
42436c29ae
Allow simple abstract function declarators as in `sizeof(void * ())`
9 yıl önce
Max Brunsfeld
34245e5ba8
Export precedences (so C++ grammar can use them)
9 yıl önce
Max Brunsfeld
39a662907b
Make a named node for argument lists in call expressions
9 yıl önce
Max Brunsfeld
281e0cd60d
Add 'u' and 'l' suffixes on number literals
9 yıl önce
Max Brunsfeld
eaa878ce95
Allow preprocessor conditionals inside functions
9 yıl önce
Max Brunsfeld
e64b56050e
Add preprocessor if blocks
9 yıl önce
Max Brunsfeld
8e8a968e3b
Fix handling of backslashes in string literals
9 yıl önce
Max Brunsfeld
9b715a2620
Add concatenated strings
9 yıl önce
Max Brunsfeld
fb51d81c99
Add comma expressions, make parenthesized expressions named rules
9 yıl önce
Max Brunsfeld
c2a7bd2d9c
Allow any type name in a macro-defined type
9 yıl önce
Max Brunsfeld
eed36b3f88
Allow object-like defines whose values start with parentheses
9 yıl önce
Max Brunsfeld
be2676ed3e
Allow empty initializer lists
9 yıl önce
Max Brunsfeld
f3ea61c8fe
Add C++ linkage specifiers, since they appear in .h files
9 yıl önce
Max Brunsfeld
367cd73ee2
Allow unsigned, short, etc to be their own types
9 yıl önce
Max Brunsfeld
46e5a1af6a
Add associativity to pointer declarators
9 yıl önce