From 2ec6c63c87f71786dcae5d5175e5da45bb78f3b5 Mon Sep 17 00:00:00 2001 From: hatsusato Date: Sun, 11 Sep 2016 14:46:36 +0900 Subject: [PATCH 1/9] Add declaration action --- src/parser.y | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/parser.y b/src/parser.y index a655abc5..9ff84315 100644 --- a/src/parser.y +++ b/src/parser.y @@ -157,7 +157,9 @@ declaration-specifiers ; declaration -: declaration-specifiers declarator-list +: declaration-specifiers declarator-list { + $$ = cons($[declaration-specifiers], $[declarator-list]); +} ; declarator-list.opt From 1efbe4421ab927f2df27d0406bc3d503206e7478 Mon Sep 17 00:00:00 2001 From: hatsusato Date: Sun, 11 Sep 2016 14:48:22 +0900 Subject: [PATCH 2/9] Add declarator-list action --- src/parser.y | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/parser.y b/src/parser.y index 9ff84315..b03ded52 100644 --- a/src/parser.y +++ b/src/parser.y @@ -163,12 +163,18 @@ declaration ; declarator-list.opt -: %empty -| ',' declarator-list +: %empty { + $$ = NULL; +} +| ',' declarator-list { + $$ = $[declarator-list]; +} ; declarator-list -: declarator declarator-list.opt +: declarator declarator-list.opt { + $$ = cons($[declarator], $[declarator-list.opt]); +} ; init-declaration From be694e687cb35eb24f18c8e9f072597304b76e08 Mon Sep 17 00:00:00 2001 From: hatsusato Date: Sun, 11 Sep 2016 14:50:26 +0900 Subject: [PATCH 3/9] Add init-declaration action --- src/parser.y | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/parser.y b/src/parser.y index b03ded52..1388ec87 100644 --- a/src/parser.y +++ b/src/parser.y @@ -178,7 +178,9 @@ declarator-list ; init-declaration -: declaration-specifiers init-declarator-list +: declaration-specifiers init-declarator-list { + $$ = cons($[declaration-specifiers], $[init-declarator-list]); +} ; init-declarator-list.opt From bf10088fec0d53122f9b945a41c99232da5dc6bb Mon Sep 17 00:00:00 2001 From: hatsusato Date: Sun, 11 Sep 2016 14:52:16 +0900 Subject: [PATCH 4/9] Add init-declarator-list action --- src/parser.y | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/parser.y b/src/parser.y index 1388ec87..16a33315 100644 --- a/src/parser.y +++ b/src/parser.y @@ -184,12 +184,18 @@ init-declaration ; init-declarator-list.opt -: %empty -| ',' init-declarator-list +: %empty { + $$ = NULL; +} +| ',' init-declarator-list { + $$ = $[init-declarator-list]; +} ; init-declarator-list -: init-declarator init-declarator-list.opt +: init-declarator init-declarator-list.opt { + $$ = cons($[init-declarator], $[init-declarator-list.opt]); +} ; init-declarator From 3838c8ae280aafa7aa1c939fef5b63c71b569880 Mon Sep 17 00:00:00 2001 From: hatsusato Date: Sun, 11 Sep 2016 14:52:57 +0900 Subject: [PATCH 5/9] Add init-declarator action --- src/parser.y | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/parser.y b/src/parser.y index 16a33315..08c30008 100644 --- a/src/parser.y +++ b/src/parser.y @@ -199,7 +199,9 @@ init-declarator-list ; init-declarator -: declarator +: declarator { + $$ = cons($[declarator], NULL); +} /* | declarator '=' initializer */ ; From 5cac484d1c09b1997fe1981317292757934e6da6 Mon Sep 17 00:00:00 2001 From: hatsusato Date: Sun, 11 Sep 2016 15:22:33 +0900 Subject: [PATCH 6/9] Add declarator action --- src/parser.y | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/parser.y b/src/parser.y index 08c30008..d7adc88e 100644 --- a/src/parser.y +++ b/src/parser.y @@ -206,7 +206,9 @@ init-declarator ; declarator -: direct-declarator +: direct-declarator { + $$ = $[direct-declarator]; +} /* : pointer-list.opt direct-declarator */ ; From 0a902c4664426bb6b51b2dd36b0ee466d41c6e6a Mon Sep 17 00:00:00 2001 From: hatsusato Date: Sun, 11 Sep 2016 15:23:14 +0900 Subject: [PATCH 7/9] Add direct-declarator action --- src/parser.y | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/parser.y b/src/parser.y index d7adc88e..027bf096 100644 --- a/src/parser.y +++ b/src/parser.y @@ -213,7 +213,9 @@ declarator ; direct-declarator -: identifier +: identifier { + $$ = $[identifier]; +} /* | '(' declarator ')' */ /* | array-declarator */ /* | function-declarator */ From 0df45dc40db6012471078ab0ed6bf70bf3e9f738 Mon Sep 17 00:00:00 2001 From: hatsusato Date: Sun, 11 Sep 2016 15:24:47 +0900 Subject: [PATCH 8/9] Add parameter-declaration-list action --- src/parser.y | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/parser.y b/src/parser.y index 027bf096..5d624ad3 100644 --- a/src/parser.y +++ b/src/parser.y @@ -222,12 +222,18 @@ direct-declarator ; parameter-declaration-list.opt -: %empty -| ',' parameter-declaration-list +: %empty { + $$ = NULL; +} +| ',' parameter-declaration-list { + $$ = $[parameter-declaration-list]; +} ; parameter-declaration-list -: parameter-declaration parameter-declaration-list.opt +: parameter-declaration parameter-declaration-list.opt { + $$ = cons($[parameter-declaration], $[parameter-declaration-list.opt]); +} ; parameter-declaration From bd686eefef6bd8c913a384d2f5ea681edbb52ad5 Mon Sep 17 00:00:00 2001 From: hatsusato Date: Sun, 11 Sep 2016 15:27:37 +0900 Subject: [PATCH 9/9] Add parameter-declaration action --- src/parser.y | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/parser.y b/src/parser.y index 5d624ad3..fd28613f 100644 --- a/src/parser.y +++ b/src/parser.y @@ -237,7 +237,9 @@ parameter-declaration-list ; parameter-declaration -: declaration-specifiers declarator +: declaration-specifiers declarator { + $$ = cons($[declaration-specifiers], $[declarator]); +} /* | declaration-specifiers abstract-declarator.opt */ ;