Add all storage classes

edge_only_predecessors
Max Brunsfeld 2015-03-08 13:11:58 +07:00
parent e1871c5213
commit ae3a41b13f
3 changed files with 12000 additions and 11650 deletions

@ -174,9 +174,11 @@ module.exports =
enum_value: -> seq( enum_value: -> seq(
@identifier, optional(seq("=", @expression))) @identifier, optional(seq("=", @expression)))
storage_class: -> repeat(choice( storage_class: -> choice(
keyword("extern"),
keyword("static"), keyword("static"),
keyword("extern"))), keyword("auto"),
keyword("register"))
field: -> seq(@type, @type_expression) field: -> seq(@type, @type_expression)

@ -69,12 +69,32 @@ float d, e;
(program (program
(var_declaration (primitive_type (identifier)) (identifier)) (var_declaration (primitive_type (identifier)) (identifier))
(var_declaration (primitive_type (identifier)) (var_declaration
(primitive_type (identifier))
(identifier) (identifier)
(var_assignment (identifier) (number)) (var_assignment (identifier) (number))
(identifier)) (identifier))
(var_declaration (identifier) (identifier) (identifier))) (var_declaration (identifier) (identifier) (identifier)))
============================================
Variable storage classes
============================================
int a;
extern int b, c;
auto int d;
register int e;
static int f;
---
(program
(var_declaration (identifier) (identifier))
(var_declaration (storage_class) (identifier) (identifier) (identifier))
(var_declaration (storage_class) (identifier) (identifier))
(var_declaration (storage_class) (identifier) (identifier))
(var_declaration (storage_class) (identifier) (identifier)))
============================================ ============================================
Composite-typed variable declarations Composite-typed variable declarations
============================================ ============================================

File diff suppressed because it is too large Load Diff