-/* ------------------------------------------------
-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=partn.tab.cc.h -p PartnParser -o partn.tab.cc partn.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_partn.h"
-
-extern partn_def_list_t *partn_parse_result;
-
-
-#define YYDEBUG 1
-
-%}
-
-
- /* symbolic tokens */
-
-%union {
- int intval;
- double floatval;
- char *strval;
- int subtok;
-
-/* for FTA definition. */
- literal_t *litval;
- scalarexp_t *scalarval;
- se_list_t *se_listval;
- colref_t *colref;
- partn_def_list_t *pdl;
- partn_def_t *pd;
-}
-
-%token <strval> NAME
-%token <strval> STRING_TOKEN
-%token <strval> INTNUM
-%token <strval> LONGINTNUM
-
-/* for FTA definition. */
-%type <litval> literal
-%type <colref> column_ref
-%type <scalarval> scalar_exp
-%type <se_listval> scalar_exp_commalist
-%type <pdl> partn_def_list
-%type <pd> partn_def
-
-%left '|'
-%left '&'
-%left '+' '-'
-%left '*' '/'
-%nonassoc UMINUS
-
- /* literal keyword tokens */
-%token HEX_L LHEX_L IP_L
-
-
-%%
-
-/* Union of possible results */
-parse_result: partn_def_list {
- partn_parse_result = $1;
- }
- ;
-
-
-partn_def_list:
- partn_def {$$ = new partn_def_list_t($1);}
- | partn_def_list partn_def {$$=$1->append($2);}
- ;
-
-partn_def:
- NAME '[' NAME ']' ':' '(' scalar_exp_commalist ')'
- {$$ = new partn_def_t($1,$3,$7);}
- ;
-
-scalar_exp:
- scalar_exp '+' scalar_exp { $$=new scalarexp_t("+",$1,$3);}
- | scalar_exp '-' scalar_exp { $$=new scalarexp_t("-",$1,$3);}
- | scalar_exp '|' scalar_exp { $$=new scalarexp_t("|",$1,$3);}
- | scalar_exp '*' scalar_exp { $$=new scalarexp_t("*",$1,$3);}
- | scalar_exp '/' scalar_exp { $$=new scalarexp_t("/",$1,$3);}
- | scalar_exp '&' scalar_exp { $$=new scalarexp_t("&",$1,$3);}
- | '+' scalar_exp %prec UMINUS { $$ = new scalarexp_t("+",$2);}
- | '-' scalar_exp %prec UMINUS { $$ = new scalarexp_t("-",$2);}
- | literal { $$= new scalarexp_t($1);}
- | column_ref { $$ = new scalarexp_t($1);}
- | '(' scalar_exp ')' {$$ = $2;}
- ;
-
-scalar_exp_commalist:
- scalar_exp { $$= new se_list_t($1); }
- | scalar_exp_commalist ',' scalar_exp { $$=$1->append($3); }
- ;
-
-literal:
- INTNUM {$$ = new literal_t($1,LITERAL_INT);}
- | LONGINTNUM {$$ = new literal_t($1,LITERAL_LONGINT);}
- | HEX_L STRING_TOKEN {$$ = new literal_t($2,LITERAL_HEX);}
- | LHEX_L STRING_TOKEN {$$ = new literal_t($2,LITERAL_LONGHEX);}
- | IP_L STRING_TOKEN {$$ = new literal_t($2,LITERAL_IP);}
- ;
-
-
-column_ref:
- NAME {$$ = new colref_t($1); }
- ;
-
-
-%%
-
+/* ------------------------------------------------\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=partn.tab.cc.h -p PartnParser -o partn.tab.cc partn.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_partn.h"\r
+\r
+extern partn_def_list_t *partn_parse_result;\r
+\r
+\r
+#define YYDEBUG 1\r
+\r
+%}\r
+\r
+\r
+ /* symbolic tokens */\r
+\r
+%union {\r
+ int intval;\r
+ double floatval;\r
+ char *strval;\r
+ int subtok;\r
+\r
+/* for FTA definition. */\r
+ literal_t *litval;\r
+ scalarexp_t *scalarval;\r
+ se_list_t *se_listval;\r
+ colref_t *colref;\r
+ partn_def_list_t *pdl;\r
+ partn_def_t *pd;\r
+}\r
+\r
+%token <strval> NAME\r
+%token <strval> STRING_TOKEN\r
+%token <strval> INTNUM\r
+%token <strval> LONGINTNUM\r
+\r
+/* for FTA definition. */\r
+%type <litval> literal\r
+%type <colref> column_ref\r
+%type <scalarval> scalar_exp\r
+%type <se_listval> scalar_exp_commalist\r
+%type <pdl> partn_def_list\r
+%type <pd> partn_def\r
+\r
+%left '|'\r
+%left '&'\r
+%left '+' '-'\r
+%left '*' '/' \r
+%nonassoc UMINUS\r
+\r
+ /* literal keyword tokens */\r
+%token HEX_L LHEX_L IP_L\r
+\r
+\r
+%%\r
+\r
+/* Union of possible results */\r
+parse_result: partn_def_list {\r
+ partn_parse_result = $1;\r
+ }\r
+ ;\r
+\r
+\r
+partn_def_list:\r
+ partn_def {$$ = new partn_def_list_t($1);}\r
+ | partn_def_list partn_def {$$=$1->append($2);}\r
+ ;\r
+\r
+partn_def:\r
+ NAME '[' NAME ']' ':' '(' scalar_exp_commalist ')'\r
+ {$$ = new partn_def_t($1,$3,$7);}\r
+ ;\r
+\r
+scalar_exp:\r
+ scalar_exp '+' scalar_exp { $$=new scalarexp_t("+",$1,$3);}\r
+ | scalar_exp '-' scalar_exp { $$=new scalarexp_t("-",$1,$3);}\r
+ | scalar_exp '|' scalar_exp { $$=new scalarexp_t("|",$1,$3);}\r
+ | scalar_exp '*' scalar_exp { $$=new scalarexp_t("*",$1,$3);}\r
+ | scalar_exp '/' scalar_exp { $$=new scalarexp_t("/",$1,$3);}\r
+ | scalar_exp '&' scalar_exp { $$=new scalarexp_t("&",$1,$3);}\r
+ | '+' scalar_exp %prec UMINUS { $$ = new scalarexp_t("+",$2);}\r
+ | '-' scalar_exp %prec UMINUS { $$ = new scalarexp_t("-",$2);}\r
+ | literal { $$= new scalarexp_t($1);}\r
+ | column_ref { $$ = new scalarexp_t($1);}\r
+ | '(' scalar_exp ')' {$$ = $2;}\r
+ ;\r
+\r
+scalar_exp_commalist:\r
+ scalar_exp { $$= new se_list_t($1); }\r
+ | scalar_exp_commalist ',' scalar_exp { $$=$1->append($3); }\r
+ ;\r
+\r
+literal:\r
+ INTNUM {$$ = new literal_t($1,LITERAL_INT);}\r
+ | LONGINTNUM {$$ = new literal_t($1,LITERAL_LONGINT);}\r
+ | HEX_L STRING_TOKEN {$$ = new literal_t($2,LITERAL_HEX);}\r
+ | LHEX_L STRING_TOKEN {$$ = new literal_t($2,LITERAL_LONGHEX);}\r
+ | IP_L STRING_TOKEN {$$ = new literal_t($2,LITERAL_IP);}\r
+ ;\r
+\r
+\r
+column_ref:\r
+ NAME {$$ = new colref_t($1); }\r
+ ;\r
+\r
+\r
+%%\r
+\r