[back]
start -> simple-decl-seq-opt [SimNode]
simple-decl-seq-opt -> simple-decl-seq [SimNode]
simple-decl-seq -> simple-decl-seq simple-decl [SimNode]
simple-decl-seq -> simple-decl-seq simple-decl [SimNode]
simple-decl-seq -> simple-decl [SimNode]
simple-decl -> nested-decl SEMI [SimNode]
nested-decl * -> nested-func-decl [SimNode]
nested-func-decl -> func-decl > [SimNode]
func-decl -> xBxx-decl-spec-seq pure-func-dcl [SimNode]
xBxx-decl-spec-seq -> bltn-type [SimNode]
bltn-type -> bltn-type-token [SimNode]
bltn-type-token -> INT [SimNode]
INT
pure-func-dcl -> func-dcl pure-opt [SimNode]
func-dcl -> func-b-direct-dcl [SimNode]
func-b-direct-dcl -> func-a-direct-dcl LPAREN param-decl-clause RPAREN cv-spec-seq-opt [SimNode]
func-a-direct-dcl -> obj-dcl-id [SimNode]
obj-dcl-id -> obj-id [SimNode]
obj-id -> name [SimNode]
name -> nested-name-opt IDENT [SimNode]
nested-name-opt -> [SimNode]
IDENT
LPAREN
param-decl-clause -> param-decl-list-opt ellipse-opt [SimNode]
param-decl-list-opt -> param-decl-list [SimNode]
param-decl-list -> param-init-decl [SimNode]
param-init-decl -> param-decl [SimNode]
param-decl -> xBxx-decl-spec-seq param-dcl [SimNode]
xBxx-decl-spec-seq -> bltn-type [SimNode]
bltn-type -> bltn-type-token [SimNode]
bltn-type-token -> INT [SimNode]
INT
param-dcl -> param-a-dcl [SimNode]
param-a-dcl -> param-a-direct-dcl [SimNode]
param-a-direct-dcl -> obj-dcl-id [SimNode]
obj-dcl-id -> obj-id [SimNode]
obj-id -> name [SimNode]
name -> nested-name-opt IDENT [SimNode]
nested-name-opt -> [SimNode]
IDENT
ellipse-opt -> [SimNode]
RPAREN
cv-spec-seq-opt -> [SimNode]
pure-opt -> pure [SimNode]
pure -> ASSIGN ZERO [SimNode]
ASSIGN
ZERO
SEMI
simple-decl -> nested-decl SEMI [SimNode]
nested-decl * -> nested-func-decl [SimNode]
nested-func-decl -> func-decl > [SimNode]
func-decl -> pure-ctor-dcl > [SimNode]
pure-ctor-dcl -> ctor-dcl pure-opt [SimNode]
ctor-dcl -> ctor-direct-dcl [SimNode]
ctor-direct-dcl -> ctor-dcl-id LPAREN param-decl-clause RPAREN cv-spec-seq-opt [SimNode]
ctor-dcl-id -> ctor-id [SimNode]
ctor-id -> ctor-name [SimNode]
ctor-name -> nested-name-opt IDENT [SimNode]
nested-name-opt -> nested-name [SimNode]
nested-name -> name DCOLON >! [SimNode]
name -> nested-name-opt IDENT [SimNode]
nested-name-opt -> [SimNode]
IDENT
DCOLON
IDENT
LPAREN
param-decl-clause -> param-decl-list-opt ellipse-opt [SimNode]
param-decl-list-opt -> [SimNode]
ellipse-opt -> [SimNode]
RPAREN
cv-spec-seq-opt -> [SimNode]
pure-opt -> [SimNode]
SEMI
simple-decl -> nested-decl SEMI [SimNode]
nested-decl * -> nested-obj-init-decl [SimNode]
nested-obj-init-decl -> nested-obj-decl obj-init-opt [SimNode]
nested-obj-decl -> obj-decl > [SimNode]
obj-decl -> xBxx-decl-spec-seq obj-dcl [SimNode]
xBxx-decl-spec-seq -> bltn-type [SimNode]
bltn-type -> bltn-type-token [SimNode]
bltn-type-token -> INT [SimNode]
INT
obj-dcl -> obj-a-dcl [SimNode]
obj-a-dcl -> obj-a-direct-dcl [SimNode]
obj-a-direct-dcl -> obj-dcl-id [SimNode]
obj-dcl-id -> obj-id [SimNode]
obj-id -> name [SimNode]
name -> nested-name-opt IDENT [SimNode]
nested-name-opt -> [SimNode]
IDENT
obj-init-opt -> obj-init [SimNode]
obj-init -> LPAREN expr-list RPAREN [SimNode]
LPAREN
expr-list -> expr [SimNode]
expr -> name [SimNode]
name -> nested-name-opt IDENT [SimNode]
nested-name-opt -> [SimNode]
IDENT
RPAREN
SEMI
[back]