Fixed newline characters throughout the code
[com/gs-lite.git] / src / ftacmp / ext_fcns.y
index b0f08df..0713293 100644 (file)
-/* ------------------------------------------------\r
-Copyright 2014 AT&T Intellectual Property\r
-   Licensed under the Apache License, Version 2.0 (the "License");\r
-   you may not use this file except in compliance with the License.\r
-   You may obtain a copy of the License at\r
-\r
-     http://www.apache.org/licenses/LICENSE-2.0\r
-\r
-   Unless required by applicable law or agreed to in writing, software\r
-   distributed under the License is distributed on an "AS IS" BASIS,\r
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-   See the License for the specific language governing permissions and\r
-   limitations under the License.\r
- ------------------------------------------- */\r
-\r
-/*\r
-       MUST COMPILE WITH\r
-       bison --verbose --defines=ext_fcns.tab.cc.h -p Ext_fcnsParser -o ext_fcns.tab.cc ext_fcns.y\r
-        \r
-        (or equivalent).\r
-*/\r
-\r
-%{\r
-\r
-\r
-#include <stdio.h>\r
-\r
-/*             Some addn'l includes, necessary but not included by the\r
-               bison generated code.\r
-*/\r
-\r
-#include <stdlib.h>\r
-\r
-/*             prototypes for the parser callbacks.\r
-*/\r
-\r
-#include "parse_ext_fcns.h"\r
-\r
-/*             Interface to ext_fcns parser    */\r
-       int yyparse();\r
-       void yyerror(char *s);\r
-       int yylex();\r
-extern int flex_ext_fcns_lineno, flex_ext_fcns_ch;\r
-\r
-/*             Return value    */\r
-extern ext_fcn_list *Ext_fcns;\r
-\r
-#define YYDEBUG 1\r
-\r
-%}\r
-\r
-\r
-       /* symbolic tokens */\r
-\r
-%union {\r
-       char* strval;\r
-       ext_fcn_list *ext_fcn_list_t;\r
-       ext_fcn_def *ext_fcn_t;\r
-       ext_fcn_param_list *plist_t;\r
-       param_list *tplist_t;\r
-       ext_fcn_param *param_t;\r
-       ext_fcn_modifier_list *modif_t;\r
-       }\r
-\r
-       \r
-%token <strval> NAME\r
-%token <strval> STRING_TOKEN\r
-%token <strval> INTNUM\r
-\r
-\r
-%type <ext_fcn_t> fcn_def \r
-%type <ext_fcn_list_t> fcn_list\r
-%type <plist_t> param_commalist\r
-%type <plist_t> opt_param_commalist\r
-%type <tplist_t> type_param_commalist\r
-%type <tplist_t> opt_type_param_commalist\r
-%type <param_t> param\r
-%type <modif_t> modifier_list\r
-       /* operators */\r
-\r
-\r
-       /* literal keyword tokens */\r
-\r
-%token SEMICOLON HANDLE CONST CLASS FUN PRED\r
-%token EXTR UDAF STATE SFUN\r
-\r
-\r
-%%\r
-\r
-result:        fcn_list        {Ext_fcns = $1;}\r
-       ;\r
-\r
-fcn_list:      fcn_def {$$ = new ext_fcn_list($1);}\r
-       |       fcn_list fcn_def        {$$ = $1->append_ext_fcn_def($2);}\r
-       ;\r
-\r
-fcn_def:       NAME opt_type_param_commalist FUN '[' modifier_list ']' NAME '(' opt_param_commalist ')' SEMICOLON  {\r
-                                       $$=new ext_fcn_def($1,$2,$5,$7,$9); delete $5; delete $9; }\r
-       |       NAME opt_type_param_commalist FUN NAME '(' opt_param_commalist ')' SEMICOLON  {\r
-                                       $$=new ext_fcn_def($1,$2,NULL,$4,$6); delete $6; }\r
-       |       PRED '[' modifier_list ']' NAME '[' opt_param_commalist ']' SEMICOLON  {\r
-                                       $$=new ext_fcn_def($3,$5,$7); delete $3; delete $7; }\r
-       |       PRED NAME '[' opt_param_commalist ']' SEMICOLON  {\r
-                                       $$=new ext_fcn_def(NULL,$2,$4); delete $4; }\r
-       |       NAME opt_type_param_commalist UDAF '[' modifier_list ']' NAME NAME '(' opt_param_commalist ')' SEMICOLON  {\r
-                                       $$=new ext_fcn_def($1,$2,$5,$7,$8,$10); delete $5; delete $10; }\r
-       |       NAME opt_type_param_commalist UDAF NAME NAME '(' opt_param_commalist ')' SEMICOLON  {\r
-                                       $$=new ext_fcn_def($1,$2,NULL,$4,$5, $7); delete $7; }\r
-       |       NAME opt_type_param_commalist EXTR '[' modifier_list ']' NAME NAME NAME '(' opt_param_commalist ')' SEMICOLON  {\r
-                                       $$=new ext_fcn_def($1,$2,$5,$7,$8, $9, $11); delete $5; delete $11; }\r
-       |       NAME opt_type_param_commalist EXTR NAME NAME NAME '(' opt_param_commalist ')' SEMICOLON  {\r
-                                       $$=new ext_fcn_def($1,$2,NULL,$4,$5, $6, $8); delete $8; }\r
-       |       NAME opt_type_param_commalist SFUN '[' modifier_list ']' NAME NAME '(' opt_param_commalist ')' SEMICOLON  {\r
-                                       $$=ext_fcn_def::make_sfun_def($1,$2,$5,$7,$8,$10); delete $10; }\r
-       |       NAME opt_type_param_commalist SFUN NAME NAME '(' opt_param_commalist ')' SEMICOLON  {\r
-                                       $$=ext_fcn_def::make_sfun_def($1,$2,NULL,$4,$5,$7); delete $7; }\r
-       |       NAME STATE NAME SEMICOLON  {\r
-                                       $$=ext_fcn_def::make_state_def($1,$3); }\r
-\r
-       ;\r
-\r
-opt_param_commalist:\r
-               /* empty */    {$$ = NULL;}\r
-       |       param_commalist {$$ = $1;}\r
-       ;\r
-       \r
-modifier_list:\r
-               NAME    {$$ = new ext_fcn_modifier_list($1);}\r
-       |       NAME NAME       {$$ = new ext_fcn_modifier_list($1, $2);}\r
-       |       modifier_list ',' NAME  {$$ = $1->append($3);   }       \r
-       |       modifier_list ',' NAME NAME     {$$ = $1->append($3, $4);       }       \r
-       ;\r
-       \r
-param_commalist:\r
-               param   {$$ = new ext_fcn_param_list($1);}\r
-       |       param_commalist ',' param {$$ = $1->append($3);}\r
-       ;\r
-\r
-param:\r
-               NAME opt_type_param_commalist HANDLE    { $$ = new ext_fcn_param($1,$2,1,0,0);}\r
-       |       NAME opt_type_param_commalist CONST     { $$ = new ext_fcn_param($1,$2,0,1,0);}\r
-       |       NAME opt_type_param_commalist CLASS     { $$ = new ext_fcn_param($1,$2,0,0,1);}\r
-       |       NAME opt_type_param_commalist HANDLE CLASS      { $$ = new ext_fcn_param($1,$2,1,0,1);}\r
-       |       NAME opt_type_param_commalist CONST CLASS       { $$ = new ext_fcn_param($1,$2,0,1,1);}\r
-       |       NAME opt_type_param_commalist\r
-                               { $$ = new ext_fcn_param($1,$2,0,0,0);}\r
-       ;\r
-\r
-opt_type_param_commalist:\r
-               /* empty */    {$$ = NULL;}\r
-       |       '(' type_param_commalist ')' {$$ = $2;}\r
-       ;\r
-\r
-type_param_commalist:\r
-               NAME    {$$ = new param_list($1);}\r
-       |       NAME NAME       {$$ = new param_list($1,$2);}\r
-       |       NAME STRING_TOKEN       {$$ = new param_list($1,$2);}\r
-       |       NAME INTNUM     {$$ = new param_list($1,$2);}\r
-       |       type_param_commalist ',' NAME {$$ = $1->append($3);}\r
-       |       type_param_commalist ',' NAME NAME {$$ = $1->append($3,$4);}\r
-       |       type_param_commalist ',' NAME STRING_TOKEN {$$ = $1->append($3,$4);}\r
-       |       type_param_commalist ',' NAME INTNUM {$$ = $1->append($3,$4);}\r
-       ;\r
-\r
-\r
-\r
-%%\r
\r
+/* ------------------------------------------------
+Copyright 2014 AT&T Intellectual Property
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+ ------------------------------------------- */
+
+/*
+       MUST COMPILE WITH
+       bison --verbose --defines=ext_fcns.tab.cc.h -p Ext_fcnsParser -o ext_fcns.tab.cc ext_fcns.y
+        
+        (or equivalent).
+*/
+
+%{
+
+
+#include <stdio.h>
+
+/*             Some addn'l includes, necessary but not included by the
+               bison generated code.
+*/
+
+#include <stdlib.h>
+
+/*             prototypes for the parser callbacks.
+*/
+
+#include "parse_ext_fcns.h"
+
+/*             Interface to ext_fcns parser    */
+       int yyparse();
+       void yyerror(char *s);
+       int yylex();
+extern int flex_ext_fcns_lineno, flex_ext_fcns_ch;
+
+/*             Return value    */
+extern ext_fcn_list *Ext_fcns;
+
+#define YYDEBUG 1
+
+%}
+
+
+       /* symbolic tokens */
+
+%union {
+       char* strval;
+       ext_fcn_list *ext_fcn_list_t;
+       ext_fcn_def *ext_fcn_t;
+       ext_fcn_param_list *plist_t;
+       param_list *tplist_t;
+       ext_fcn_param *param_t;
+       ext_fcn_modifier_list *modif_t;
+       }
+
+       
+%token <strval> NAME
+%token <strval> STRING_TOKEN
+%token <strval> INTNUM
+
+
+%type <ext_fcn_t> fcn_def 
+%type <ext_fcn_list_t> fcn_list
+%type <plist_t> param_commalist
+%type <plist_t> opt_param_commalist
+%type <tplist_t> type_param_commalist
+%type <tplist_t> opt_type_param_commalist
+%type <param_t> param
+%type <modif_t> modifier_list
+       /* operators */
+
+
+       /* literal keyword tokens */
+
+%token SEMICOLON HANDLE CONST CLASS FUN PRED
+%token EXTR UDAF STATE SFUN
+
+
+%%
+
+result:        fcn_list        {Ext_fcns = $1;}
+       ;
+
+fcn_list:      fcn_def {$$ = new ext_fcn_list($1);}
+       |       fcn_list fcn_def        {$$ = $1->append_ext_fcn_def($2);}
+       ;
+
+fcn_def:       NAME opt_type_param_commalist FUN '[' modifier_list ']' NAME '(' opt_param_commalist ')' SEMICOLON  {
+                                       $$=new ext_fcn_def($1,$2,$5,$7,$9); delete $5; delete $9; }
+       |       NAME opt_type_param_commalist FUN NAME '(' opt_param_commalist ')' SEMICOLON  {
+                                       $$=new ext_fcn_def($1,$2,NULL,$4,$6); delete $6; }
+       |       PRED '[' modifier_list ']' NAME '[' opt_param_commalist ']' SEMICOLON  {
+                                       $$=new ext_fcn_def($3,$5,$7); delete $3; delete $7; }
+       |       PRED NAME '[' opt_param_commalist ']' SEMICOLON  {
+                                       $$=new ext_fcn_def(NULL,$2,$4); delete $4; }
+       |       NAME opt_type_param_commalist UDAF '[' modifier_list ']' NAME NAME '(' opt_param_commalist ')' SEMICOLON  {
+                                       $$=new ext_fcn_def($1,$2,$5,$7,$8,$10); delete $5; delete $10; }
+       |       NAME opt_type_param_commalist UDAF NAME NAME '(' opt_param_commalist ')' SEMICOLON  {
+                                       $$=new ext_fcn_def($1,$2,NULL,$4,$5, $7); delete $7; }
+       |       NAME opt_type_param_commalist EXTR '[' modifier_list ']' NAME NAME NAME '(' opt_param_commalist ')' SEMICOLON  {
+                                       $$=new ext_fcn_def($1,$2,$5,$7,$8, $9, $11); delete $5; delete $11; }
+       |       NAME opt_type_param_commalist EXTR NAME NAME NAME '(' opt_param_commalist ')' SEMICOLON  {
+                                       $$=new ext_fcn_def($1,$2,NULL,$4,$5, $6, $8); delete $8; }
+       |       NAME opt_type_param_commalist SFUN '[' modifier_list ']' NAME NAME '(' opt_param_commalist ')' SEMICOLON  {
+                                       $$=ext_fcn_def::make_sfun_def($1,$2,$5,$7,$8,$10); delete $10; }
+       |       NAME opt_type_param_commalist SFUN NAME NAME '(' opt_param_commalist ')' SEMICOLON  {
+                                       $$=ext_fcn_def::make_sfun_def($1,$2,NULL,$4,$5,$7); delete $7; }
+       |       NAME STATE NAME SEMICOLON  {
+                                       $$=ext_fcn_def::make_state_def($1,$3); }
+
+       ;
+
+opt_param_commalist:
+               /* empty */    {$$ = NULL;}
+       |       param_commalist {$$ = $1;}
+       ;
+       
+modifier_list:
+               NAME    {$$ = new ext_fcn_modifier_list($1);}
+       |       NAME NAME       {$$ = new ext_fcn_modifier_list($1, $2);}
+       |       modifier_list ',' NAME  {$$ = $1->append($3);   }       
+       |       modifier_list ',' NAME NAME     {$$ = $1->append($3, $4);       }       
+       ;
+       
+param_commalist:
+               param   {$$ = new ext_fcn_param_list($1);}
+       |       param_commalist ',' param {$$ = $1->append($3);}
+       ;
+
+param:
+               NAME opt_type_param_commalist HANDLE    { $$ = new ext_fcn_param($1,$2,1,0,0);}
+       |       NAME opt_type_param_commalist CONST     { $$ = new ext_fcn_param($1,$2,0,1,0);}
+       |       NAME opt_type_param_commalist CLASS     { $$ = new ext_fcn_param($1,$2,0,0,1);}
+       |       NAME opt_type_param_commalist HANDLE CLASS      { $$ = new ext_fcn_param($1,$2,1,0,1);}
+       |       NAME opt_type_param_commalist CONST CLASS       { $$ = new ext_fcn_param($1,$2,0,1,1);}
+       |       NAME opt_type_param_commalist
+                               { $$ = new ext_fcn_param($1,$2,0,0,0);}
+       ;
+
+opt_type_param_commalist:
+               /* empty */    {$$ = NULL;}
+       |       '(' type_param_commalist ')' {$$ = $2;}
+       ;
+
+type_param_commalist:
+               NAME    {$$ = new param_list($1);}
+       |       NAME NAME       {$$ = new param_list($1,$2);}
+       |       NAME STRING_TOKEN       {$$ = new param_list($1,$2);}
+       |       NAME INTNUM     {$$ = new param_list($1,$2);}
+       |       type_param_commalist ',' NAME {$$ = $1->append($3);}
+       |       type_param_commalist ',' NAME NAME {$$ = $1->append($3,$4);}
+       |       type_param_commalist ',' NAME STRING_TOKEN {$$ = $1->append($3,$4);}
+       |       type_param_commalist ',' NAME INTNUM {$$ = $1->append($3,$4);}
+       ;
+
+
+
+%%