-/* ------------------------------------------------\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 -d -p xmlParser -o xml.tab.cc xml.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 "xml_t.h"\r
-\r
-\r
-extern std::vector<std::string> xml_attr_vec;\r
-extern std::vector<std::string> xml_val_vec;\r
-extern std::string xml_a, xml_v;\r
-extern xml_t *xml_leaves;\r
-\r
-extern int xmlParserdebug;\r
-extern void xmlParsererror(char *s);\r
-extern int xmlParserlex();\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 xml_list end_tag\r
- | start_tag end_tag\r
- | '<' NAME opt_val_list '/' '>'\r
- {xml_leaves->add_leaf(new xml_leaf_t($2, xml_attr_vec, xml_val_vec));\r
- }\r
- ;\r
-\r
-start_tag:\r
- '<' NAME opt_val_list '>' \r
- ;\r
-\r
-end_tag:\r
- '<' '/' NAME '>' \r
- ;\r
-\r
-\r
-xml_list:\r
- resource\r
- | xml_list resource\r
- ;\r
-\r
-opt_val_list:\r
- val_list\r
- | {xml_attr_vec.clear(); xml_val_vec.clear();}\r
- ;\r
-\r
-val_list:\r
- val {xml_attr_vec.clear(); xml_attr_vec.push_back(xml_a);\r
- xml_val_vec.clear(); xml_val_vec.push_back(xml_v); }\r
- | val_list val {xml_attr_vec.push_back(xml_a);\r
- xml_val_vec.push_back(xml_v); }\r
- ;\r
-\r
-val:\r
- NAME '=' STRING_TOKEN {xml_a = $1; xml_v = $3;}\r
- ;\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 -d -p xmlParser -o xml.tab.cc xml.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 "xml_t.h"
+
+
+extern std::vector<std::string> xml_attr_vec;
+extern std::vector<std::string> xml_val_vec;
+extern std::string xml_a, xml_v;
+extern xml_t *xml_leaves;
+
+extern int xmlParserdebug;
+extern void xmlParsererror(char *s);
+extern int xmlParserlex();
+
+
+#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 xml_list end_tag
+ | start_tag end_tag
+ | '<' NAME opt_val_list '/' '>'
+ {xml_leaves->add_leaf(new xml_leaf_t($2, xml_attr_vec, xml_val_vec));
+ }
+ ;
+
+start_tag:
+ '<' NAME opt_val_list '>'
+ ;
+
+end_tag:
+ '<' '/' NAME '>'
+ ;
+
+
+xml_list:
+ resource
+ | xml_list resource
+ ;
+
+opt_val_list:
+ val_list
+ | {xml_attr_vec.clear(); xml_val_vec.clear();}
+ ;
+
+val_list:
+ val {xml_attr_vec.clear(); xml_attr_vec.push_back(xml_a);
+ xml_val_vec.clear(); xml_val_vec.push_back(xml_v); }
+ | val_list val {xml_attr_vec.push_back(xml_a);
+ xml_val_vec.push_back(xml_v); }
+ ;
+
+val:
+ NAME '=' STRING_TOKEN {xml_a = $1; xml_v = $3;}
+ ;
+
+
+
+
+
+%%
+
+