-/* ------------------------------------------------\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=res.tab.cc.h -p ResParser -o res.tab.cc res.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 "iface_q.h"\r
-\r
-\r
-extern resparse_data *rpd_ptr;\r
-extern std::vector<std::string> res_attr_vec;\r
-extern std::vector<std::string> res_val_vec;\r
-extern std::string res_a, res_v;\r
-\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
-\r
-}\r
-\r
-%token <strval> NAME\r
-%token <strval> STRING_TOKEN\r
-\r
-\r
-\r
-\r
-%%\r
-\r
-parse_result: resource\r
- ;\r
-\r
-resource:\r
- start_tag res_list end_tag\r
- | start_tag end_tag\r
- | '<' NAME opt_val_list '/' '>'\r
- {startElement(rpd_ptr, $2, res_attr_vec, res_val_vec);\r
- endElement(rpd_ptr, $2);\r
- }\r
- ;\r
-\r
-start_tag:\r
- '<' NAME opt_val_list '>' {startElement(rpd_ptr, $2, res_attr_vec, res_val_vec);}\r
- ;\r
-\r
-end_tag:\r
- '<' '/' NAME '>' {endElement(rpd_ptr, $3);}\r
- ;\r
-\r
-\r
-res_list:\r
- resource\r
- | res_list resource\r
- ;\r
-\r
-opt_val_list:\r
- val_list\r
- | {res_attr_vec.clear(); res_val_vec.clear();}\r
- ;\r
-\r
-val_list:\r
- val {res_attr_vec.clear(); res_attr_vec.push_back(res_a);\r
- res_val_vec.clear(); res_val_vec.push_back(res_v); }\r
- | val_list val {res_attr_vec.push_back(res_a);\r
- res_val_vec.push_back(res_v); }\r
- ;\r
-\r
-val:\r
- NAME '=' STRING_TOKEN {res_a = $1; res_v = $3;}\r
- ;\r
- \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=res.tab.cc.h -p ResParser -o res.tab.cc res.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 "iface_q.h"
+
+
+extern resparse_data *rpd_ptr;
+extern std::vector<std::string> res_attr_vec;
+extern std::vector<std::string> res_val_vec;
+extern std::string res_a, res_v;
+
+
+
+#define YYDEBUG 1
+
+%}
+
+
+ /* symbolic tokens */
+
+%union {
+ int intval;
+ double floatval;
+ char *strval;
+ int subtok;
+
+ /* for FTA definition. */
+
+}
+
+%token <strval> NAME
+%token <strval> STRING_TOKEN
+
+
+
+
+%%
+
+parse_result: resource
+ ;
+
+resource:
+ start_tag res_list end_tag
+ | start_tag end_tag
+ | '<' NAME opt_val_list '/' '>'
+ {startElement(rpd_ptr, $2, res_attr_vec, res_val_vec);
+ endElement(rpd_ptr, $2);
+ }
+ ;
+
+start_tag:
+ '<' NAME opt_val_list '>' {startElement(rpd_ptr, $2, res_attr_vec, res_val_vec);}
+ ;
+
+end_tag:
+ '<' '/' NAME '>' {endElement(rpd_ptr, $3);}
+ ;
+
+
+res_list:
+ resource
+ | res_list resource
+ ;
+
+opt_val_list:
+ val_list
+ | {res_attr_vec.clear(); res_val_vec.clear();}
+ ;
+
+val_list:
+ val {res_attr_vec.clear(); res_attr_vec.push_back(res_a);
+ res_val_vec.clear(); res_val_vec.push_back(res_v); }
+ | val_list val {res_attr_vec.push_back(res_a);
+ res_val_vec.push_back(res_v); }
+ ;
+
+val:
+ NAME '=' STRING_TOKEN {res_a = $1; res_v = $3;}
+ ;
+
+
+
+
+
+%%
+