-/* ------------------------------------------------
-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;}
- ;
-
-
-
-
-
-%%
-
+/* ------------------------------------------------\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