]> granicus.if.org Git - multimarkdown/commitdiff
UPDATED: Apply astyle
authorFletcher T. Penney <fletcher@fletcherpenney.net>
Tue, 7 Aug 2018 00:11:34 +0000 (19:11 -0500)
committerFletcher T. Penney <fletcher@fletcherpenney.net>
Tue, 7 Aug 2018 00:11:34 +0000 (19:11 -0500)
Sources/libMultiMarkdown/opml-lexer.c
Sources/libMultiMarkdown/opml-parser.c

index 4aa2f69b4e40050a5cb4bc0c661c5ae3d37e0f26..ca92df9b48758afd2019f50ac29051675899cab3 100644 (file)
@@ -9,7 +9,7 @@
 
 
        @author Fletcher T. Penney
-       @bug    
+       @bug
 
 **/
 
 
 
        The `MultiMarkdown 6` project is released under the MIT License..
-       
+
        GLibFacade.c and GLibFacade.h are from the MultiMarkdown v4 project:
-       
+
                https://github.com/fletcher/MultiMarkdown-4/
-       
+
        MMD 4 is released under both the MIT License and GPL.
-       
-       
+
+
        CuTest is released under the zlib/libpng license. See CuTest.c for the
        text of the license.
-       
+
        uthash library:
                Copyright (c) 2005-2016, Troy D. Hanson
-       
+
                Licensed under Revised BSD license
-       
+
        miniz library:
                Copyright 2013-2014 RAD Game Tools and Valve Software
                Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC
-       
+
                Licensed under the MIT license
-       
+
        argtable3 library:
                Copyright (C) 1998-2001,2003-2011,2013 Stewart Heitmann
                <sheitmann@users.sourceforge.net>
                All rights reserved.
-       
+
                Licensed under the Revised BSD License
-       
-       
+
+
        ## The MIT License ##
-       
+
        Permission is hereby granted, free of charge, to any person obtaining
        a copy of this software and associated documentation files (the
        "Software"), to deal in the Software without restriction, including
        distribute, sublicense, and/or sell copies of the Software, and to
        permit persons to whom the Software is furnished to do so, subject to
        the following conditions:
-       
+
        The above copyright notice and this permission notice shall be
        included in all copies or substantial portions of the Software.
-       
+
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
        EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
        MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
        CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
        TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
        SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-       
-       
+
+
        ## Revised BSD License ##
-       
+
        Redistribution and use in source and binary forms, with or without
        modification, are permitted provided that the following conditions are
        met:
@@ -86,7 +86,7 @@
              names of its contributors may be used to endorse or promote
              products derived from this software without specific prior
              written permission.
-       
+
        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -98,7 +98,7 @@
        LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
        NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
        SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-       
+
 
 */
 
 
 int opml_scan(Scanner * s, const char * stop) {
 
-       scan:
+scan:
 
        if (s->cur >= stop) {
                return 0;
@@ -125,865 +125,1535 @@ int opml_scan(Scanner * s, const char * stop) {
 
        s->start = s->cur;
 
-       
-{
-       YYCTYPE yych;
-       unsigned int yyaccept = 0;
-       yych = *YYCURSOR;
-       switch (yych) {
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy4;
-       case '<':       goto yy7;
-       default:        goto yy2;
-       }
+
+       {
+               YYCTYPE yych;
+               unsigned int yyaccept = 0;
+               yych = *YYCURSOR;
+
+               switch (yych) {
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy4;
+
+                       case '<':
+                               goto yy7;
+
+                       default:
+                               goto yy2;
+               }
+
 yy2:
-       ++YYCURSOR;
-yy3:
-       { goto scan; }
+               ++YYCURSOR;
+yy3: {
+                       goto scan;
+               }
 yy4:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy4;
-       default:        goto yy6;
-       }
-yy6:
-       { return OPML_WSNL; }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy4;
+
+                       default:
+                               goto yy6;
+               }
+
+yy6: {
+                       return OPML_WSNL;
+               }
 yy7:
-       yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
-       switch (yych) {
-       case '/':       goto yy8;
-       case '?':       goto yy10;
-       case 'B':
-       case 'b':       goto yy11;
-       case 'H':
-       case 'h':       goto yy12;
-       case 'O':
-       case 'o':       goto yy13;
-       case 'T':
-       case 't':       goto yy14;
-       default:        goto yy3;
-       }
+               yyaccept = 0;
+               yych = *(YYMARKER = ++YYCURSOR);
+
+               switch (yych) {
+                       case '/':
+                               goto yy8;
+
+                       case '?':
+                               goto yy10;
+
+                       case 'B':
+                       case 'b':
+                               goto yy11;
+
+                       case 'H':
+                       case 'h':
+                               goto yy12;
+
+                       case 'O':
+                       case 'o':
+                               goto yy13;
+
+                       case 'T':
+                       case 't':
+                               goto yy14;
+
+                       default:
+                               goto yy3;
+               }
+
 yy8:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'B':
-       case 'b':       goto yy15;
-       case 'H':
-       case 'h':       goto yy16;
-       case 'O':
-       case 'o':       goto yy17;
-       case 'T':
-       case 't':       goto yy18;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'B':
+                       case 'b':
+                               goto yy15;
+
+                       case 'H':
+                       case 'h':
+                               goto yy16;
+
+                       case 'O':
+                       case 'o':
+                               goto yy17;
+
+                       case 'T':
+                       case 't':
+                               goto yy18;
+
+                       default:
+                               goto yy9;
+               }
+
 yy9:
-       YYCURSOR = YYMARKER;
-       switch (yyaccept) {
-       case 0:         goto yy3;
-       case 1:         goto yy89;
-       default:        goto yy94;
-       }
+               YYCURSOR = YYMARKER;
+
+               switch (yyaccept) {
+                       case 0:
+                               goto yy3;
+
+                       case 1:
+                               goto yy89;
+
+                       default:
+                               goto yy94;
+               }
+
 yy10:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'X':
-       case 'x':       goto yy19;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'X':
+                       case 'x':
+                               goto yy19;
+
+                       default:
+                               goto yy9;
+               }
+
 yy11:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'O':
-       case 'o':       goto yy20;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'O':
+                       case 'o':
+                               goto yy20;
+
+                       default:
+                               goto yy9;
+               }
+
 yy12:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy21;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy21;
+
+                       default:
+                               goto yy9;
+               }
+
 yy13:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'P':
-       case 'p':       goto yy22;
-       case 'U':
-       case 'u':       goto yy23;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'P':
+                       case 'p':
+                               goto yy22;
+
+                       case 'U':
+                       case 'u':
+                               goto yy23;
+
+                       default:
+                               goto yy9;
+               }
+
 yy14:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'I':
-       case 'i':       goto yy24;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'I':
+                       case 'i':
+                               goto yy24;
+
+                       default:
+                               goto yy9;
+               }
+
 yy15:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'O':
-       case 'o':       goto yy25;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'O':
+                       case 'o':
+                               goto yy25;
+
+                       default:
+                               goto yy9;
+               }
+
 yy16:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy26;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy26;
+
+                       default:
+                               goto yy9;
+               }
+
 yy17:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'P':
-       case 'p':       goto yy27;
-       case 'U':
-       case 'u':       goto yy28;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'P':
+                       case 'p':
+                               goto yy27;
+
+                       case 'U':
+                       case 'u':
+                               goto yy28;
+
+                       default:
+                               goto yy9;
+               }
+
 yy18:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'I':
-       case 'i':       goto yy29;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'I':
+                       case 'i':
+                               goto yy29;
+
+                       default:
+                               goto yy9;
+               }
+
 yy19:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'M':
-       case 'm':       goto yy30;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'M':
+                       case 'm':
+                               goto yy30;
+
+                       default:
+                               goto yy9;
+               }
+
 yy20:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'D':
-       case 'd':       goto yy31;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'D':
+                       case 'd':
+                               goto yy31;
+
+                       default:
+                               goto yy9;
+               }
+
 yy21:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'A':
-       case 'a':       goto yy32;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'A':
+                       case 'a':
+                               goto yy32;
+
+                       default:
+                               goto yy9;
+               }
+
 yy22:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'M':
-       case 'm':       goto yy33;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'M':
+                       case 'm':
+                               goto yy33;
+
+                       default:
+                               goto yy9;
+               }
+
 yy23:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'T':
-       case 't':       goto yy34;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'T':
+                       case 't':
+                               goto yy34;
+
+                       default:
+                               goto yy9;
+               }
+
 yy24:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'T':
-       case 't':       goto yy35;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'T':
+                       case 't':
+                               goto yy35;
+
+                       default:
+                               goto yy9;
+               }
+
 yy25:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'D':
-       case 'd':       goto yy36;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'D':
+                       case 'd':
+                               goto yy36;
+
+                       default:
+                               goto yy9;
+               }
+
 yy26:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'A':
-       case 'a':       goto yy37;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'A':
+                       case 'a':
+                               goto yy37;
+
+                       default:
+                               goto yy9;
+               }
+
 yy27:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'M':
-       case 'm':       goto yy38;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'M':
+                       case 'm':
+                               goto yy38;
+
+                       default:
+                               goto yy9;
+               }
+
 yy28:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'T':
-       case 't':       goto yy39;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'T':
+                       case 't':
+                               goto yy39;
+
+                       default:
+                               goto yy9;
+               }
+
 yy29:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'T':
-       case 't':       goto yy40;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'T':
+                       case 't':
+                               goto yy40;
+
+                       default:
+                               goto yy9;
+               }
+
 yy30:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'L':
-       case 'l':       goto yy41;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'L':
+                       case 'l':
+                               goto yy41;
+
+                       default:
+                               goto yy9;
+               }
+
 yy31:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'Y':
-       case 'y':       goto yy43;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'Y':
+                       case 'y':
+                               goto yy43;
+
+                       default:
+                               goto yy9;
+               }
+
 yy32:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'D':
-       case 'd':       goto yy45;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'D':
+                       case 'd':
+                               goto yy45;
+
+                       default:
+                               goto yy9;
+               }
+
 yy33:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'L':
-       case 'l':       goto yy47;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'L':
+                       case 'l':
+                               goto yy47;
+
+                       default:
+                               goto yy9;
+               }
+
 yy34:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'L':
-       case 'l':       goto yy49;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'L':
+                       case 'l':
+                               goto yy49;
+
+                       default:
+                               goto yy9;
+               }
+
 yy35:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'L':
-       case 'l':       goto yy50;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'L':
+                       case 'l':
+                               goto yy50;
+
+                       default:
+                               goto yy9;
+               }
+
 yy36:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'Y':
-       case 'y':       goto yy51;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'Y':
+                       case 'y':
+                               goto yy51;
+
+                       default:
+                               goto yy9;
+               }
+
 yy37:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'D':
-       case 'd':       goto yy52;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'D':
+                       case 'd':
+                               goto yy52;
+
+                       default:
+                               goto yy9;
+               }
+
 yy38:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'L':
-       case 'l':       goto yy53;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'L':
+                       case 'l':
+                               goto yy53;
+
+                       default:
+                               goto yy9;
+               }
+
 yy39:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'L':
-       case 'l':       goto yy54;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'L':
+                       case 'l':
+                               goto yy54;
+
+                       default:
+                               goto yy9;
+               }
+
 yy40:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'L':
-       case 'l':       goto yy55;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'L':
+                       case 'l':
+                               goto yy55;
+
+                       default:
+                               goto yy9;
+               }
+
 yy41:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '>':       goto yy56;
-       default:        goto yy41;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '>':
+                               goto yy56;
+
+                       default:
+                               goto yy41;
+               }
+
 yy43:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '>':       goto yy58;
-       default:        goto yy43;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '>':
+                               goto yy58;
+
+                       default:
+                               goto yy43;
+               }
+
 yy45:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '>':       goto yy60;
-       default:        goto yy45;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '>':
+                               goto yy60;
+
+                       default:
+                               goto yy45;
+               }
+
 yy47:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '>':       goto yy62;
-       default:        goto yy47;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '>':
+                               goto yy62;
+
+                       default:
+                               goto yy47;
+               }
+
 yy49:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'I':
-       case 'i':       goto yy64;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'I':
+                       case 'i':
+                               goto yy64;
+
+                       default:
+                               goto yy9;
+               }
+
 yy50:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy65;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy65;
+
+                       default:
+                               goto yy9;
+               }
+
 yy51:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '>':       goto yy67;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case '>':
+                               goto yy67;
+
+                       default:
+                               goto yy9;
+               }
+
 yy52:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '>':       goto yy69;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case '>':
+                               goto yy69;
+
+                       default:
+                               goto yy9;
+               }
+
 yy53:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '>':       goto yy71;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case '>':
+                               goto yy71;
+
+                       default:
+                               goto yy9;
+               }
+
 yy54:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'I':
-       case 'i':       goto yy73;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'I':
+                       case 'i':
+                               goto yy73;
+
+                       default:
+                               goto yy9;
+               }
+
 yy55:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy74;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy74;
+
+                       default:
+                               goto yy9;
+               }
+
 yy56:
-       ++YYCURSOR;
-       { return OPML_XML; }
+               ++YYCURSOR;
+               {
+                       return OPML_XML;
+               }
 yy58:
-       ++YYCURSOR;
-       { return OPML_BODY_OPEN; }
+               ++YYCURSOR;
+               {
+                       return OPML_BODY_OPEN;
+               }
 yy60:
-       ++YYCURSOR;
-       { return OPML_HEAD_OPEN; }
+               ++YYCURSOR;
+               {
+                       return OPML_HEAD_OPEN;
+               }
 yy62:
-       ++YYCURSOR;
-       { return OPML_OPML_OPEN; }
+               ++YYCURSOR;
+               {
+                       return OPML_OPML_OPEN;
+               }
 yy64:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'N':
-       case 'n':       goto yy75;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'N':
+                       case 'n':
+                               goto yy75;
+
+                       default:
+                               goto yy9;
+               }
+
 yy65:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '>':       goto yy76;
-       default:        goto yy65;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '>':
+                               goto yy76;
+
+                       default:
+                               goto yy65;
+               }
+
 yy67:
-       ++YYCURSOR;
-       { return OPML_BODY_CLOSE; }
+               ++YYCURSOR;
+               {
+                       return OPML_BODY_CLOSE;
+               }
 yy69:
-       ++YYCURSOR;
-       { return OPML_HEAD_CLOSE; }
+               ++YYCURSOR;
+               {
+                       return OPML_HEAD_CLOSE;
+               }
 yy71:
-       ++YYCURSOR;
-       { return OPML_OPML_CLOSE; }
+               ++YYCURSOR;
+               {
+                       return OPML_OPML_CLOSE;
+               }
 yy73:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'N':
-       case 'n':       goto yy78;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'N':
+                       case 'n':
+                               goto yy78;
+
+                       default:
+                               goto yy9;
+               }
+
 yy74:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '>':       goto yy79;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case '>':
+                               goto yy79;
+
+                       default:
+                               goto yy9;
+               }
+
 yy75:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy81;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy81;
+
+                       default:
+                               goto yy9;
+               }
+
 yy76:
-       ++YYCURSOR;
-       { return OPML_TITLE_OPEN; }
+               ++YYCURSOR;
+               {
+                       return OPML_TITLE_OPEN;
+               }
 yy78:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy83;
-       default:        goto yy9;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy83;
+
+                       default:
+                               goto yy9;
+               }
+
 yy79:
-       ++YYCURSOR;
-       { return OPML_TITLE_CLOSE; }
+               ++YYCURSOR;
+               {
+                       return OPML_TITLE_CLOSE;
+               }
 yy81:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy81;
-       case '/':       goto yy86;
-       case '>':       goto yy88;
-       case 'T':
-       case 't':       goto yy90;
-       default:        goto yy84;
-       }
-yy83:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '>':       goto yy91;
-       default:        goto yy9;
-       }
-yy84:
-       yych = *++YYCURSOR;
-yy85:
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '/':       goto yy86;
-       case '>':       goto yy88;
-       default:        goto yy84;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy81;
+
+                       case '/':
+                               goto yy86;
+
+                       case '>':
+                               goto yy88;
+
+                       case 'T':
+                       case 't':
+                               goto yy90;
+
+                       default:
+                               goto yy84;
+               }
+
+yy83:
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case '>':
+                               goto yy91;
+
+                       default:
+                               goto yy9;
+               }
+
+yy84:
+               yych = *++YYCURSOR;
+yy85:
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '/':
+                               goto yy86;
+
+                       case '>':
+                               goto yy88;
+
+                       default:
+                               goto yy84;
+               }
+
 yy86:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '/':       goto yy86;
-       case '>':       goto yy93;
-       default:        goto yy84;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '/':
+                               goto yy86;
+
+                       case '>':
+                               goto yy93;
+
+                       default:
+                               goto yy84;
+               }
+
 yy88:
-       ++YYCURSOR;
-yy89:
-       { return OPML_OUTLINE_OPEN; }
+               ++YYCURSOR;
+yy89: {
+                       return OPML_OUTLINE_OPEN;
+               }
 yy90:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy95;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy95;
+
+                       default:
+                               goto yy85;
+               }
+
 yy91:
-       ++YYCURSOR;
-       { return OPML_OUTLINE_CLOSE; }
+               ++YYCURSOR;
+               {
+                       return OPML_OUTLINE_CLOSE;
+               }
 yy93:
-       ++YYCURSOR;
-yy94:
-       { return OPML_OUTLINE_SELF_CLOSE; }
+               ++YYCURSOR;
+yy94: {
+                       return OPML_OUTLINE_SELF_CLOSE;
+               }
 yy95:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'X':
-       case 'x':       goto yy96;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'X':
+                       case 'x':
+                               goto yy96;
+
+                       default:
+                               goto yy85;
+               }
+
 yy96:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'T':
-       case 't':       goto yy97;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'T':
+                       case 't':
+                               goto yy97;
+
+                       default:
+                               goto yy85;
+               }
+
 yy97:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy97;
-       case '/':       goto yy86;
-       case '=':       goto yy99;
-       case '>':       goto yy88;
-       default:        goto yy84;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy97;
+
+                       case '/':
+                               goto yy86;
+
+                       case '=':
+                               goto yy99;
+
+                       case '>':
+                               goto yy88;
+
+                       default:
+                               goto yy84;
+               }
+
 yy99:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy99;
-       case '"':       goto yy101;
-       case '/':       goto yy86;
-       case '>':       goto yy88;
-       default:        goto yy84;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy99;
+
+                       case '"':
+                               goto yy101;
+
+                       case '/':
+                               goto yy86;
+
+                       case '>':
+                               goto yy88;
+
+                       default:
+                               goto yy84;
+               }
+
 yy101:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '(':       goto yy102;
-       case 'M':
-       case 'm':       goto yy103;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case '(':
+                               goto yy102;
+
+                       case 'M':
+                       case 'm':
+                               goto yy103;
+
+                       default:
+                               goto yy85;
+               }
+
 yy102:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'U':
-       case 'u':       goto yy104;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'U':
+                       case 'u':
+                               goto yy104;
+
+                       default:
+                               goto yy85;
+               }
+
 yy103:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy105;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy105;
+
+                       default:
+                               goto yy85;
+               }
+
 yy104:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'N':
-       case 'n':       goto yy106;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'N':
+                       case 'n':
+                               goto yy106;
+
+                       default:
+                               goto yy85;
+               }
+
 yy105:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'T':
-       case 't':       goto yy107;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'T':
+                       case 't':
+                               goto yy107;
+
+                       default:
+                               goto yy85;
+               }
+
 yy106:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'T':
-       case 't':       goto yy108;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'T':
+                       case 't':
+                               goto yy108;
+
+                       default:
+                               goto yy85;
+               }
+
 yy107:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'A':
-       case 'a':       goto yy109;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'A':
+                       case 'a':
+                               goto yy109;
+
+                       default:
+                               goto yy85;
+               }
+
 yy108:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'I':
-       case 'i':       goto yy110;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'I':
+                       case 'i':
+                               goto yy110;
+
+                       default:
+                               goto yy85;
+               }
+
 yy109:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'D':
-       case 'd':       goto yy111;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'D':
+                       case 'd':
+                               goto yy111;
+
+                       default:
+                               goto yy85;
+               }
+
 yy110:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'T':
-       case 't':       goto yy112;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'T':
+                       case 't':
+                               goto yy112;
+
+                       default:
+                               goto yy85;
+               }
+
 yy111:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'A':
-       case 'a':       goto yy113;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'A':
+                       case 'a':
+                               goto yy113;
+
+                       default:
+                               goto yy85;
+               }
+
 yy112:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'L':
-       case 'l':       goto yy114;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'L':
+                       case 'l':
+                               goto yy114;
+
+                       default:
+                               goto yy85;
+               }
+
 yy113:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'T':
-       case 't':       goto yy115;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'T':
+                       case 't':
+                               goto yy115;
+
+                       default:
+                               goto yy85;
+               }
+
 yy114:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy116;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy116;
+
+                       default:
+                               goto yy85;
+               }
+
 yy115:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'A':
-       case 'a':       goto yy117;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'A':
+                       case 'a':
+                               goto yy117;
+
+                       default:
+                               goto yy85;
+               }
+
 yy116:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'D':
-       case 'd':       goto yy118;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'D':
+                       case 'd':
+                               goto yy118;
+
+                       default:
+                               goto yy85;
+               }
+
 yy117:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '"':       goto yy119;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case '"':
+                               goto yy119;
+
+                       default:
+                               goto yy85;
+               }
+
 yy118:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case ' ':       goto yy121;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case ' ':
+                               goto yy121;
+
+                       default:
+                               goto yy85;
+               }
+
 yy119:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy119;
-       case '/':       goto yy86;
-       case '>':       goto yy122;
-       default:        goto yy84;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy119;
+
+                       case '/':
+                               goto yy86;
+
+                       case '>':
+                               goto yy122;
+
+                       default:
+                               goto yy84;
+               }
+
 yy121:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'P':
-       case 'p':       goto yy124;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'P':
+                       case 'p':
+                               goto yy124;
+
+                       default:
+                               goto yy85;
+               }
+
 yy122:
-       ++YYCURSOR;
-       { return OPML_OUTLINE_METADATA; }
+               ++YYCURSOR;
+               {
+                       return OPML_OUTLINE_METADATA;
+               }
 yy124:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'R':
-       case 'r':       goto yy125;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'R':
+                       case 'r':
+                               goto yy125;
+
+                       default:
+                               goto yy85;
+               }
+
 yy125:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy126;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy126;
+
+                       default:
+                               goto yy85;
+               }
+
 yy126:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'A':
-       case 'a':       goto yy127;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'A':
+                       case 'a':
+                               goto yy127;
+
+                       default:
+                               goto yy85;
+               }
+
 yy127:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'M':
-       case 'm':       goto yy128;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'M':
+                       case 'm':
+                               goto yy128;
+
+                       default:
+                               goto yy85;
+               }
+
 yy128:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'B':
-       case 'b':       goto yy129;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'B':
+                       case 'b':
+                               goto yy129;
+
+                       default:
+                               goto yy85;
+               }
+
 yy129:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'L':
-       case 'l':       goto yy130;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'L':
+                       case 'l':
+                               goto yy130;
+
+                       default:
+                               goto yy85;
+               }
+
 yy130:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy131;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy131;
+
+                       default:
+                               goto yy85;
+               }
+
 yy131:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case ')':       goto yy132;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case ')':
+                               goto yy132;
+
+                       default:
+                               goto yy85;
+               }
+
 yy132:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '"':       goto yy133;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case '"':
+                               goto yy133;
+
+                       default:
+                               goto yy85;
+               }
+
 yy133:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy133;
-       case '/':       goto yy86;
-       case '>':       goto yy88;
-       case '_':       goto yy135;
-       default:        goto yy84;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy133;
+
+                       case '/':
+                               goto yy86;
+
+                       case '>':
+                               goto yy88;
+
+                       case '_':
+                               goto yy135;
+
+                       default:
+                               goto yy84;
+               }
+
 yy135:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'N':
-       case 'n':       goto yy136;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'N':
+                       case 'n':
+                               goto yy136;
+
+                       default:
+                               goto yy85;
+               }
+
 yy136:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'O':
-       case 'o':       goto yy137;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'O':
+                       case 'o':
+                               goto yy137;
+
+                       default:
+                               goto yy85;
+               }
+
 yy137:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'T':
-       case 't':       goto yy138;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'T':
+                       case 't':
+                               goto yy138;
+
+                       default:
+                               goto yy85;
+               }
+
 yy138:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy139;
-       default:        goto yy85;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy139;
+
+                       default:
+                               goto yy85;
+               }
+
 yy139:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy139;
-       case '/':       goto yy86;
-       case '=':       goto yy141;
-       case '>':       goto yy88;
-       default:        goto yy84;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy139;
+
+                       case '/':
+                               goto yy86;
+
+                       case '=':
+                               goto yy141;
+
+                       case '>':
+                               goto yy88;
+
+                       default:
+                               goto yy84;
+               }
+
 yy141:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy141;
-       case '"':       goto yy143;
-       case '/':       goto yy86;
-       case '>':       goto yy88;
-       default:        goto yy84;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy141;
+
+                       case '"':
+                               goto yy143;
+
+                       case '/':
+                               goto yy86;
+
+                       case '>':
+                               goto yy88;
+
+                       default:
+                               goto yy84;
+               }
+
 yy143:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '"':       goto yy145;
-       case '/':       goto yy147;
-       case '>':       goto yy149;
-       default:        goto yy143;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '"':
+                               goto yy145;
+
+                       case '/':
+                               goto yy147;
+
+                       case '>':
+                               goto yy149;
+
+                       default:
+                               goto yy143;
+               }
+
 yy145:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy145;
-       case '/':       goto yy86;
-       case '>':       goto yy150;
-       default:        goto yy84;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy145;
+
+                       case '/':
+                               goto yy86;
+
+                       case '>':
+                               goto yy150;
+
+                       default:
+                               goto yy84;
+               }
+
 yy147:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '"':       goto yy145;
-       case '/':       goto yy147;
-       case '>':       goto yy152;
-       default:        goto yy143;
-       }
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '"':
+                               goto yy145;
+
+                       case '/':
+                               goto yy147;
+
+                       case '>':
+                               goto yy152;
+
+                       default:
+                               goto yy143;
+               }
+
 yy149:
-       yyaccept = 1;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 0x00) goto yy89;
-       goto yy154;
+               yyaccept = 1;
+               yych = *(YYMARKER = ++YYCURSOR);
+
+               if (yych <= 0x00) {
+                       goto yy89;
+               }
+
+               goto yy154;
 yy150:
-       ++YYCURSOR;
-       { return OPML_OUTLINE_PREAMBLE; }
+               ++YYCURSOR;
+               {
+                       return OPML_OUTLINE_PREAMBLE;
+               }
 yy152:
-       yyaccept = 2;
-       yych = *(YYMARKER = ++YYCURSOR);
-       if (yych <= 0x00) goto yy94;
-       goto yy154;
+               yyaccept = 2;
+               yych = *(YYMARKER = ++YYCURSOR);
+
+               if (yych <= 0x00) {
+                       goto yy94;
+               }
+
+               goto yy154;
 yy153:
-       yych = *++YYCURSOR;
+               yych = *++YYCURSOR;
 yy154:
-       switch (yych) {
-       case 0x00:      goto yy9;
-       case '"':       goto yy155;
-       default:        goto yy153;
-       }
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy9;
+
+                       case '"':
+                               goto yy155;
+
+                       default:
+                               goto yy153;
+               }
+
 yy155:
-       yych = *++YYCURSOR;
-       switch (yych) {
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy155;
-       case '>':       goto yy150;
-       default:        goto yy9;
+               yych = *++YYCURSOR;
+
+               switch (yych) {
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy155;
+
+                       case '>':
+                               goto yy150;
+
+                       default:
+                               goto yy9;
+               }
        }
-}
 
 }
 
@@ -996,111 +1666,177 @@ size_t scan_text(const char * c) {
        const char * start = c;
 
 
-{
-       unsigned char yych;
-       yych = *(marker = c);
-       switch (yych) {
-       case '\t':
-       case '\r':
-       case ' ':       goto yy161;
-       case '\n':      goto yy162;
-       case 'T':
-       case 't':       goto yy165;
-       default:        goto yy160;
-       }
-yy159:
-       { return 0; }
+       {
+               unsigned char yych;
+               yych = *(marker = c);
+
+               switch (yych) {
+                       case '\t':
+                       case '\r':
+                       case ' ':
+                               goto yy161;
+
+                       case '\n':
+                               goto yy162;
+
+                       case 'T':
+                       case 't':
+                               goto yy165;
+
+                       default:
+                               goto yy160;
+               }
+
+yy159: {
+                       return 0;
+               }
 yy160:
-       ++c;
-       goto yy159;
+               ++c;
+               goto yy159;
 yy161:
-       yych = *(marker = ++c);
-       switch (yych) {
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy162;
-       case 'T':
-       case 't':       goto yy166;
-       default:        goto yy159;
-       }
+               yych = *(marker = ++c);
+
+               switch (yych) {
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy162;
+
+                       case 'T':
+                       case 't':
+                               goto yy166;
+
+                       default:
+                               goto yy159;
+               }
+
 yy162:
-       yych = *++c;
-       switch (yych) {
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy162;
-       case 'T':
-       case 't':       goto yy166;
-       default:        goto yy164;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy162;
+
+                       case 'T':
+                       case 't':
+                               goto yy166;
+
+                       default:
+                               goto yy164;
+               }
+
 yy164:
-       c = marker;
-       goto yy159;
+               c = marker;
+               goto yy159;
 yy165:
-       yych = *(marker = ++c);
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy167;
-       default:        goto yy159;
-       }
+               yych = *(marker = ++c);
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy167;
+
+                       default:
+                               goto yy159;
+               }
+
 yy166:
-       yych = *++c;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy167;
-       default:        goto yy164;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy167;
+
+                       default:
+                               goto yy164;
+               }
+
 yy167:
-       yych = *++c;
-       switch (yych) {
-       case 'X':
-       case 'x':       goto yy168;
-       default:        goto yy164;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case 'X':
+                       case 'x':
+                               goto yy168;
+
+                       default:
+                               goto yy164;
+               }
+
 yy168:
-       yych = *++c;
-       switch (yych) {
-       case 'T':
-       case 't':       goto yy169;
-       default:        goto yy164;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case 'T':
+                       case 't':
+                               goto yy169;
+
+                       default:
+                               goto yy164;
+               }
+
 yy169:
-       yych = *++c;
-       switch (yych) {
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy169;
-       case '=':       goto yy171;
-       default:        goto yy164;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy169;
+
+                       case '=':
+                               goto yy171;
+
+                       default:
+                               goto yy164;
+               }
+
 yy171:
-       yych = *++c;
-       switch (yych) {
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy171;
-       case '"':
-               marker = c;
-               goto yy173;
-       default:        goto yy164;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy171;
+
+                       case '"':
+                               marker = c;
+                               goto yy173;
+
+                       default:
+                               goto yy164;
+               }
+
 yy173:
-       yych = *++c;
-       switch (yych) {
-       case 0x00:      goto yy164;
-       case '"':       goto yy175;
-       default:        goto yy173;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy164;
+
+                       case '"':
+                               goto yy175;
+
+                       default:
+                               goto yy173;
+               }
+
 yy175:
-       ++c;
-       c = marker;
-       { return (size_t)( c - start ); }
-}
-       
+               ++c;
+               c = marker;
+               {
+                       return (size_t)( c - start );
+               }
+       }
+
 }
 
 
@@ -1110,115 +1846,186 @@ size_t scan_note(const char * c) {
        const char * start = c;
 
 
-{
-       unsigned char yych;
-       yych = *(marker = c);
-       switch (yych) {
-       case '\t':
-       case '\r':
-       case ' ':       goto yy181;
-       case '\n':      goto yy182;
-       case '_':       goto yy185;
-       default:        goto yy180;
-       }
-yy179:
-       { return 0; }
+       {
+               unsigned char yych;
+               yych = *(marker = c);
+
+               switch (yych) {
+                       case '\t':
+                       case '\r':
+                       case ' ':
+                               goto yy181;
+
+                       case '\n':
+                               goto yy182;
+
+                       case '_':
+                               goto yy185;
+
+                       default:
+                               goto yy180;
+               }
+
+yy179: {
+                       return 0;
+               }
 yy180:
-       ++c;
-       goto yy179;
+               ++c;
+               goto yy179;
 yy181:
-       yych = *(marker = ++c);
-       switch (yych) {
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy182;
-       case '_':       goto yy186;
-       default:        goto yy179;
-       }
+               yych = *(marker = ++c);
+
+               switch (yych) {
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy182;
+
+                       case '_':
+                               goto yy186;
+
+                       default:
+                               goto yy179;
+               }
+
 yy182:
-       yych = *++c;
-       switch (yych) {
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy182;
-       case '_':       goto yy186;
-       default:        goto yy184;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy182;
+
+                       case '_':
+                               goto yy186;
+
+                       default:
+                               goto yy184;
+               }
+
 yy184:
-       c = marker;
-       goto yy179;
+               c = marker;
+               goto yy179;
 yy185:
-       yych = *(marker = ++c);
-       switch (yych) {
-       case 'N':
-       case 'n':       goto yy187;
-       default:        goto yy179;
-       }
+               yych = *(marker = ++c);
+
+               switch (yych) {
+                       case 'N':
+                       case 'n':
+                               goto yy187;
+
+                       default:
+                               goto yy179;
+               }
+
 yy186:
-       yych = *++c;
-       switch (yych) {
-       case 'N':
-       case 'n':       goto yy187;
-       default:        goto yy184;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case 'N':
+                       case 'n':
+                               goto yy187;
+
+                       default:
+                               goto yy184;
+               }
+
 yy187:
-       yych = *++c;
-       switch (yych) {
-       case 'O':
-       case 'o':       goto yy188;
-       default:        goto yy184;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case 'O':
+                       case 'o':
+                               goto yy188;
+
+                       default:
+                               goto yy184;
+               }
+
 yy188:
-       yych = *++c;
-       switch (yych) {
-       case 'T':
-       case 't':       goto yy189;
-       default:        goto yy184;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case 'T':
+                       case 't':
+                               goto yy189;
+
+                       default:
+                               goto yy184;
+               }
+
 yy189:
-       yych = *++c;
-       switch (yych) {
-       case 'E':
-       case 'e':       goto yy190;
-       default:        goto yy184;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case 'E':
+                       case 'e':
+                               goto yy190;
+
+                       default:
+                               goto yy184;
+               }
+
 yy190:
-       yych = *++c;
-       switch (yych) {
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy190;
-       case '=':       goto yy192;
-       default:        goto yy184;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy190;
+
+                       case '=':
+                               goto yy192;
+
+                       default:
+                               goto yy184;
+               }
+
 yy192:
-       yych = *++c;
-       switch (yych) {
-       case '\t':
-       case '\n':
-       case '\r':
-       case ' ':       goto yy192;
-       case '"':
-               marker = c;
-               goto yy194;
-       default:        goto yy184;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case '\t':
+                       case '\n':
+                       case '\r':
+                       case ' ':
+                               goto yy192;
+
+                       case '"':
+                               marker = c;
+                               goto yy194;
+
+                       default:
+                               goto yy184;
+               }
+
 yy194:
-       yych = *++c;
-       switch (yych) {
-       case 0x00:      goto yy184;
-       case '"':       goto yy196;
-       default:        goto yy194;
-       }
+               yych = *++c;
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy184;
+
+                       case '"':
+                               goto yy196;
+
+                       default:
+                               goto yy194;
+               }
+
 yy196:
-       ++c;
-       c = marker;
-       { return (size_t)( c - start ); }
-}
-       
+               ++c;
+               c = marker;
+               {
+                       return (size_t)( c - start );
+               }
+       }
+
 }
 
 
@@ -1228,37 +2035,58 @@ size_t scan_double_quoted(const char * c) {
        const char * start = c;
 
 
-{
-       unsigned char yych;
-       yych = *c;
-       switch (yych) {
-       case '\n':      goto yy200;
-       case '"':       goto yy202;
-       default:        goto yy201;
-       }
-yy200:
-       { return 0; }
+       {
+               unsigned char yych;
+               yych = *c;
+
+               switch (yych) {
+                       case '\n':
+                               goto yy200;
+
+                       case '"':
+                               goto yy202;
+
+                       default:
+                               goto yy201;
+               }
+
+yy200: {
+                       return 0;
+               }
 yy201:
-       ++c;
-       goto yy200;
+               ++c;
+               goto yy200;
 yy202:
-       yych = *(marker = ++c);
-       if (yych <= 0x00) goto yy200;
-       goto yy204;
+               yych = *(marker = ++c);
+
+               if (yych <= 0x00) {
+                       goto yy200;
+               }
+
+               goto yy204;
 yy203:
-       yych = *++c;
+               yych = *++c;
 yy204:
-       switch (yych) {
-       case 0x00:      goto yy205;
-       case '"':       goto yy206;
-       default:        goto yy203;
-       }
+
+               switch (yych) {
+                       case 0x00:
+                               goto yy205;
+
+                       case '"':
+                               goto yy206;
+
+                       default:
+                               goto yy203;
+               }
+
 yy205:
-       c = marker;
-       goto yy200;
+               c = marker;
+               goto yy200;
 yy206:
-       ++c;
-       { return (size_t)( c - start ); }
-}
-       
+               ++c;
+               {
+                       return (size_t)( c - start );
+               }
+       }
+
 }
index f356bc67b65a27e304e184ee7a5c39ab6d01d925..d88f3b996f282c99bd6250b5d5b1a48bd3415027 100644 (file)
 #include <stdio.h>
 /************ Begin %include sections from the grammar ************************/
 
-       #include <assert.h>
-       #include <stdio.h>
-       #include <stdlib.h>
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
 
-       #include "libMultiMarkdown.h"
-       #include "mmd.h"
-       #include "parser.h"
-       #include "token.h"
+#include "libMultiMarkdown.h"
+#include "mmd.h"
+#include "parser.h"
+#include "token.h"
 /**************** End of %include directives **********************************/
 /* These constants specify the various numeric values for terminal symbols
 ** in a format understandable to "makeheaders".  This section is blank unless
@@ -63,7 +63,7 @@
 **                       the minor type might be the name of the identifier.
 **                       Each non-terminal can have a different minor type.
 **                       Terminal symbols all have the same minor type, though.
-**                       This macros defines the minor type for terminal 
+**                       This macros defines the minor type for terminal
 **                       symbols.
 **    YYMINORTYPE        is the data type used for all minor types.
 **                       This is typically a union of many types, one of
 **    YY_NO_ACTION       The yy_action[] code for no-op
 */
 #ifndef INTERFACE
-define INTERFACE 1
+       #define INTERFACE 1
 #endif
 /************* Begin control #defines *****************************************/
 #define YYCODETYPE unsigned char
 #define YYNOCODE 26
 #define YYACTIONTYPE unsigned char
-#define OPMLTOKENTYPE  token * 
+#define OPMLTOKENTYPE  token *
 typedef union {
-  int yyinit;
-  OPMLTOKENTYPE yy0;
+       int yyinit;
+       OPMLTOKENTYPE yy0;
 } YYMINORTYPE;
 #ifndef YYSTACKDEPTH
-#define YYSTACKDEPTH 100
+       #define YYSTACKDEPTH 100
 #endif
 #define OPMLARG_SDECL  mmd_engine * engine ;
-#define OPMLARG_PDECL , mmd_engine * engine 
-#define OPMLARG_FETCH  mmd_engine * engine  = yypParser->engine 
-#define OPMLARG_STORE yypParser->engine  = engine 
+#define OPMLARG_PDECL , mmd_engine * engine
+#define OPMLARG_FETCH  mmd_engine * engine  = yypParser->engine
+#define OPMLARG_STORE yypParser->engine  = engine
 #define YYNSTATE             18
 #define YYNRULE              17
 #define YY_MAX_SHIFT         17
@@ -127,14 +127,14 @@ typedef union {
 ** for testing.
 */
 #ifndef yytestcase
-define yytestcase(X)
+       #define yytestcase(X)
 #endif
 
 
 /* Next are the tables used to determine what action to take based on the
 ** current state and lookahead token.  These tables are used to implement
 ** functions that take a state number and lookahead value and return an
-** action integer.  
+** action integer.
 **
 ** Suppose the action integer is N.  Then the action is determined as
 ** follows
@@ -189,46 +189,46 @@ typedef union {
 *********** Begin parsing tables **********************************************/
 #define YY_ACTTAB_COUNT (57)
 static const YYACTIONTYPE yy_action[] = {
- /*     0 */     1,   45,   14,    3,   49,   42,    1,   10,   14,    3,
- /*    10 */    49,    1,   48,   14,    3,   49,    1,   47,   14,    3,
- /*    20 */    49,   41,    1,   43,   14,    3,   49,    1,    2,   14,
- /*    30 */     3,   49,   68,   17,   15,    6,    6,    7,    7,    8,
- /*    40 */     5,    5,   12,    2,   40,    9,   13,   39,   11,    4,
- /*    50 */    16,   38,   37,   36,   46,   35,   50,
      /*     0 */     1,   45,   14,    3,   49,   42,    1,   10,   14,    3,
      /*    10 */    49,    1,   48,   14,    3,   49,    1,   47,   14,    3,
      /*    20 */    49,   41,    1,   43,   14,    3,   49,    1,    2,   14,
      /*    30 */     3,   49,   68,   17,   15,    6,    6,    7,    7,    8,
      /*    40 */     5,    5,   12,    2,   40,    9,   13,   39,   11,    4,
      /*    50 */    16,   38,   37,   36,   46,   35,   50,
 };
 static const YYCODETYPE yy_lookahead[] = {
- /*     0 */    11,   12,   13,   14,   15,   10,   11,    1,   13,   14,
- /*    10 */    15,   11,   12,   13,   14,   15,   11,   12,   13,   14,
- /*    20 */    15,   10,   11,   24,   13,   14,   15,   11,    9,   13,
- /*    30 */    14,   15,   17,   18,   21,   23,   24,   23,   24,    5,
- /*    40 */    23,   24,   22,    9,    8,   20,   21,    6,    7,    3,
- /*    50 */    19,    6,    4,    4,   12,    2,    0,
      /*     0 */    11,   12,   13,   14,   15,   10,   11,    1,   13,   14,
      /*    10 */    15,   11,   12,   13,   14,   15,   11,   12,   13,   14,
      /*    20 */    15,   10,   11,   24,   13,   14,   15,   11,    9,   13,
      /*    30 */    14,   15,   17,   18,   21,   23,   24,   23,   24,    5,
      /*    40 */    23,   24,   22,    9,    8,   20,   21,    6,    7,    3,
      /*    50 */    19,    6,    4,    4,   12,    2,    0,
 };
 #define YY_SHIFT_USE_DFLT (57)
 #define YY_SHIFT_COUNT    (17)
 #define YY_SHIFT_MIN      (-11)
 #define YY_SHIFT_MAX      (56)
 static const signed char yy_shift_ofst[] = {
- /*     0 */     6,  -11,   -5,   16,   34,    0,    5,   11,   41,   19,
- /*    10 */    46,   36,   45,   48,   42,   49,   53,   56,
      /*     0 */     6,  -11,   -5,   16,   34,    0,    5,   11,   41,   19,
      /*    10 */    46,   36,   45,   48,   42,   49,   53,   56,
 };
 #define YY_REDUCE_USE_DFLT (-2)
 #define YY_REDUCE_COUNT (10)
 #define YY_REDUCE_MIN   (-1)
 #define YY_REDUCE_MAX   (31)
 static const signed char yy_reduce_ofst[] = {
- /*     0 */    15,   12,   14,   17,   25,   -1,   -1,   -1,   20,   13,
- /*    10 */    31,
      /*     0 */    15,   12,   14,   17,   25,   -1,   -1,   -1,   20,   13,
      /*    10 */    31,
 };
 static const YYACTIONTYPE yy_default[] = {
- /*     0 */    67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
- /*    10 */    67,   67,   67,   67,   67,   67,   51,   67,
      /*     0 */    67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
      /*    10 */    67,   67,   67,   67,   67,   67,   51,   67,
 };
 /********** End of lemon-generated parsing tables *****************************/
 
-/* The next table maps tokens (terminal symbols) into fallback tokens.  
+/* The next table maps tokens (terminal symbols) into fallback tokens.
 ** If a construct like the following:
-** 
+**
 **      %fallback ID X Y Z.
 **
 ** appears in the grammar, then ID becomes a fallback token for X, Y,
@@ -262,10 +262,10 @@ static const YYCODETYPE yyFallback[] = {
 ** SHIFTREDUCE.
 */
 struct yyStackEntry {
-  YYACTIONTYPE stateno;  /* The state-number, or reduce action in SHIFTREDUCE */
-  YYCODETYPE major;      /* The major token value.  This is the code
+       YYACTIONTYPE stateno;  /* The state-number, or reduce action in SHIFTREDUCE */
+       YYCODETYPE major;      /* The major token value.  This is the code
                          ** number for the token at this stack level */
-  YYMINORTYPE minor;     /* The user-supplied minor token value.  This
+       YYMINORTYPE minor;     /* The user-supplied minor token value.  This
                          ** is the value of the token  */
 };
 typedef struct yyStackEntry yyStackEntry;
@@ -273,35 +273,35 @@ typedef struct yyStackEntry yyStackEntry;
 /* The state of the parser is completely contained in an instance of
 ** the following structure */
 struct yyParser {
-  yyStackEntry *yytos;          /* Pointer to top element of the stack */
-#ifdef YYTRACKMAXSTACKDEPTH
-  int yyhwm;                    /* High-water mark of the stack */
-#endif
-#ifndef YYNOERRORRECOVERY
-  int yyerrcnt;                 /* Shifts left before out of the error */
-#endif
-  OPMLARG_SDECL                /* A place to hold %extra_argument */
-#if YYSTACKDEPTH<=0
-  int yystksz;                  /* Current side of the stack */
-  yyStackEntry *yystack;        /* The parser's stack */
-  yyStackEntry yystk0;          /* First stack entry */
-#else
-  yyStackEntry yystack[YYSTACKDEPTH];  /* The parser's stack */
-#endif
+       yyStackEntry *yytos;          /* Pointer to top element of the stack */
+       #ifdef YYTRACKMAXSTACKDEPTH
+       int yyhwm;                    /* High-water mark of the stack */
+       #endif
+       #ifndef YYNOERRORRECOVERY
+       int yyerrcnt;                 /* Shifts left before out of the error */
+       #endif
+       OPMLARG_SDECL                /* A place to hold %extra_argument */
+       #if YYSTACKDEPTH<=0
+       int yystksz;                  /* Current side of the stack */
+       yyStackEntry *yystack;        /* The parser's stack */
+       yyStackEntry yystk0;          /* First stack entry */
+       #else
+       yyStackEntry yystack[YYSTACKDEPTH];  /* The parser's stack */
+       #endif
 };
 typedef struct yyParser yyParser;
 
 #ifndef NDEBUG
-#include <stdio.h>
-static FILE *yyTraceFILE = 0;
-static char *yyTracePrompt = 0;
+       #include <stdio.h>
+       static FILE *yyTraceFILE = 0;
+       static char *yyTracePrompt = 0;
 #endif /* NDEBUG */
 
 #ifndef NDEBUG
-/* 
+/*
 ** Turn parser tracing on by giving a stream to which to write the trace
 ** and a prompt to preface each trace message.  Tracing is turned off
-** by making either argument NULL 
+** by making either argument NULL
 **
 ** Inputs:
 ** <ul>
@@ -315,25 +315,29 @@ static char *yyTracePrompt = 0;
 ** Outputs:
 ** None.
 */
-void OPMLTrace(FILE *TraceFILE, char *zTracePrompt){
-  yyTraceFILE = TraceFILE;
-  yyTracePrompt = zTracePrompt;
-  if( yyTraceFILE==0 ) yyTracePrompt = 0;
-  else if( yyTracePrompt==0 ) yyTraceFILE = 0;
+void OPMLTrace(FILE *TraceFILE, char *zTracePrompt) {
+       yyTraceFILE = TraceFILE;
+       yyTracePrompt = zTracePrompt;
+
+       if ( yyTraceFILE == 0 ) {
+               yyTracePrompt = 0;
+       } else if ( yyTracePrompt == 0 ) {
+               yyTraceFILE = 0;
+       }
 }
 #endif /* NDEBUG */
 
 #ifndef NDEBUG
 /* For tracing shifts, the names of all terminals and nonterminals
 ** are required.  The following table supplies these names */
-static const char *const yyTokenName[] = { 
-  "$",             "OPML_XML",      "OPML_WSNL",     "OPML_OPML_OPEN",
-  "OPML_OPML_CLOSE",  "OPML_HEAD_OPEN",  "OPML_HEAD_CLOSE",  "OPML_TITLE_OPEN",
-  "OPML_TITLE_CLOSE",  "OPML_BODY_OPEN",  "OPML_BODY_CLOSE",  "OPML_OUTLINE_OPEN",
-  "OPML_OUTLINE_CLOSE",  "OPML_OUTLINE_PREAMBLE",  "OPML_OUTLINE_METADATA",  "OPML_OUTLINE_SELF_CLOSE",
-  "error",         "doc",           "doc_xml",       "doc_opml",    
-  "opml_header",   "opml_body",     "opml_title",    "opml_outlines",
-  "opml_outline",
+static const char *const yyTokenName[] = {
+       "$",             "OPML_XML",      "OPML_WSNL",     "OPML_OPML_OPEN",
+       "OPML_OPML_CLOSE",  "OPML_HEAD_OPEN",  "OPML_HEAD_CLOSE",  "OPML_TITLE_OPEN",
+       "OPML_TITLE_CLOSE",  "OPML_BODY_OPEN",  "OPML_BODY_CLOSE",  "OPML_OUTLINE_OPEN",
+       "OPML_OUTLINE_CLOSE",  "OPML_OUTLINE_PREAMBLE",  "OPML_OUTLINE_METADATA",  "OPML_OUTLINE_SELF_CLOSE",
+       "error",         "doc",           "doc_xml",       "doc_opml",
+       "opml_header",   "opml_body",     "opml_title",    "opml_outlines",
+       "opml_outline",
 };
 #endif /* NDEBUG */
 
@@ -341,23 +345,23 @@ static const char *const yyTokenName[] = {
 /* For tracing reduce actions, the names of all rules are required.
 */
 static const char *const yyRuleName[] = {
- /*   0 */ "doc ::= doc_xml",
- /*   1 */ "doc_xml ::= OPML_XML doc_opml",
- /*   2 */ "doc_xml ::= OPML_XML doc_opml OPML_WSNL",
- /*   3 */ "doc_opml ::= OPML_OPML_OPEN opml_header opml_body OPML_OPML_CLOSE",
- /*   4 */ "doc_opml ::= OPML_OPML_OPEN opml_body OPML_OPML_CLOSE",
- /*   5 */ "opml_header ::= OPML_HEAD_OPEN opml_title OPML_HEAD_CLOSE",
- /*   6 */ "opml_header ::= OPML_HEAD_OPEN OPML_HEAD_CLOSE",
- /*   7 */ "opml_title ::= OPML_TITLE_OPEN OPML_TITLE_CLOSE",
- /*   8 */ "opml_body ::= OPML_BODY_OPEN opml_outlines OPML_BODY_CLOSE",
- /*   9 */ "opml_body ::= OPML_BODY_OPEN OPML_BODY_CLOSE",
- /*  10 */ "opml_outlines ::= opml_outlines opml_outline",
- /*  11 */ "opml_outlines ::= opml_outline",
- /*  12 */ "opml_outline ::= OPML_OUTLINE_OPEN OPML_OUTLINE_CLOSE",
- /*  13 */ "opml_outline ::= OPML_OUTLINE_PREAMBLE OPML_OUTLINE_CLOSE",
- /*  14 */ "opml_outline ::= OPML_OUTLINE_OPEN opml_outlines OPML_OUTLINE_CLOSE",
- /*  15 */ "opml_outline ::= OPML_OUTLINE_METADATA opml_outlines OPML_OUTLINE_CLOSE",
- /*  16 */ "opml_outline ::= OPML_OUTLINE_SELF_CLOSE",
      /*   0 */ "doc ::= doc_xml",
      /*   1 */ "doc_xml ::= OPML_XML doc_opml",
      /*   2 */ "doc_xml ::= OPML_XML doc_opml OPML_WSNL",
      /*   3 */ "doc_opml ::= OPML_OPML_OPEN opml_header opml_body OPML_OPML_CLOSE",
      /*   4 */ "doc_opml ::= OPML_OPML_OPEN opml_body OPML_OPML_CLOSE",
      /*   5 */ "opml_header ::= OPML_HEAD_OPEN opml_title OPML_HEAD_CLOSE",
      /*   6 */ "opml_header ::= OPML_HEAD_OPEN OPML_HEAD_CLOSE",
      /*   7 */ "opml_title ::= OPML_TITLE_OPEN OPML_TITLE_CLOSE",
      /*   8 */ "opml_body ::= OPML_BODY_OPEN opml_outlines OPML_BODY_CLOSE",
      /*   9 */ "opml_body ::= OPML_BODY_OPEN OPML_BODY_CLOSE",
      /*  10 */ "opml_outlines ::= opml_outlines opml_outline",
      /*  11 */ "opml_outlines ::= opml_outline",
      /*  12 */ "opml_outline ::= OPML_OUTLINE_OPEN OPML_OUTLINE_CLOSE",
      /*  13 */ "opml_outline ::= OPML_OUTLINE_PREAMBLE OPML_OUTLINE_CLOSE",
      /*  14 */ "opml_outline ::= OPML_OUTLINE_OPEN opml_outlines OPML_OUTLINE_CLOSE",
      /*  15 */ "opml_outline ::= OPML_OUTLINE_METADATA opml_outlines OPML_OUTLINE_CLOSE",
      /*  16 */ "opml_outline ::= OPML_OUTLINE_SELF_CLOSE",
 };
 #endif /* NDEBUG */
 
@@ -367,31 +371,39 @@ static const char *const yyRuleName[] = {
 ** Try to increase the size of the parser stack.  Return the number
 ** of errors.  Return 0 on success.
 */
-static int yyGrowStack(yyParser *p){
-  int newSize;
-  int idx;
-  yyStackEntry *pNew;
-
-  newSize = p->yystksz*2 + 100;
-  idx = p->yytos ? (int)(p->yytos - p->yystack) : 0;
-  if( p->yystack==&p->yystk0 ){
-    pNew = malloc(newSize*sizeof(pNew[0]));
-    if( pNew ) pNew[0] = p->yystk0;
-  }else{
-    pNew = realloc(p->yystack, newSize*sizeof(pNew[0]));
-  }
-  if( pNew ){
-    p->yystack = pNew;
-    p->yytos = &p->yystack[idx];
-#ifndef NDEBUG
-    if( yyTraceFILE ){
-      fprintf(yyTraceFILE,"%sStack grows from %d to %d entries.\n",
-              yyTracePrompt, p->yystksz, newSize);
-    }
-#endif
-    p->yystksz = newSize;
-  }
-  return pNew==0; 
+static int yyGrowStack(yyParser *p) {
+       int newSize;
+       int idx;
+       yyStackEntry *pNew;
+
+       newSize = p->yystksz * 2 + 100;
+       idx = p->yytos ? (int)(p->yytos - p->yystack) : 0;
+
+       if ( p->yystack == &p->yystk0 ) {
+               pNew = malloc(newSize * sizeof(pNew[0]));
+
+               if ( pNew ) {
+                       pNew[0] = p->yystk0;
+               }
+       } else {
+               pNew = realloc(p->yystack, newSize * sizeof(pNew[0]));
+       }
+
+       if ( pNew ) {
+               p->yystack = pNew;
+               p->yytos = &p->yystack[idx];
+               #ifndef NDEBUG
+
+               if ( yyTraceFILE ) {
+                       fprintf(yyTraceFILE, "%sStack grows from %d to %d entries.\n",
+                                       yyTracePrompt, p->yystksz, newSize);
+               }
+
+               #endif
+               p->yystksz = newSize;
+       }
+
+       return pNew == 0;
 }
 #endif
 
@@ -401,10 +413,10 @@ static int yyGrowStack(yyParser *p){
 ** grammar.
 */
 #ifndef YYMALLOCARGTYPE
-define YYMALLOCARGTYPE size_t
+       #define YYMALLOCARGTYPE size_t
 #endif
 
-/* 
+/*
 ** This function allocates a new parser.
 ** The only argument is a pointer to a function which works like
 ** malloc.
@@ -416,60 +428,66 @@ static int yyGrowStack(yyParser *p){
 ** A pointer to a parser.  This pointer is used in subsequent calls
 ** to OPML and OPMLFree.
 */
-void *OPMLAlloc(void *(*mallocProc)(YYMALLOCARGTYPE)){
-  yyParser *pParser;
-  pParser = (yyParser*)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) );
-  if( pParser ){
-#ifdef YYTRACKMAXSTACKDEPTH
-    pParser->yyhwm = 0;
-#endif
-#if YYSTACKDEPTH<=0
-    pParser->yytos = NULL;
-    pParser->yystack = NULL;
-    pParser->yystksz = 0;
-    if( yyGrowStack(pParser) ){
-      pParser->yystack = &pParser->yystk0;
-      pParser->yystksz = 1;
-    }
-#endif
-#ifndef YYNOERRORRECOVERY
-    pParser->yyerrcnt = -1;
-#endif
-    pParser->yytos = pParser->yystack;
-    pParser->yystack[0].stateno = 0;
-    pParser->yystack[0].major = 0;
-  }
-  return pParser;
+void *OPMLAlloc(void *(*mallocProc)(YYMALLOCARGTYPE)) {
+       yyParser *pParser;
+       pParser = (yyParser*)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) );
+
+       if ( pParser ) {
+               #ifdef YYTRACKMAXSTACKDEPTH
+               pParser->yyhwm = 0;
+               #endif
+               #if YYSTACKDEPTH<=0
+               pParser->yytos = NULL;
+               pParser->yystack = NULL;
+               pParser->yystksz = 0;
+
+               if ( yyGrowStack(pParser) ) {
+                       pParser->yystack = &pParser->yystk0;
+                       pParser->yystksz = 1;
+               }
+
+               #endif
+               #ifndef YYNOERRORRECOVERY
+               pParser->yyerrcnt = -1;
+               #endif
+               pParser->yytos = pParser->yystack;
+               pParser->yystack[0].stateno = 0;
+               pParser->yystack[0].major = 0;
+       }
+
+       return pParser;
 }
 
 /* The following function deletes the "minor type" or semantic value
 ** associated with a symbol.  The symbol can be either a terminal
 ** or nonterminal. "yymajor" is the symbol code, and "yypminor" is
-** a pointer to the value to be deleted.  The code used to do the 
+** a pointer to the value to be deleted.  The code used to do the
 ** deletions is derived from the %destructor and/or %token_destructor
 ** directives of the input grammar.
 */
 static void yy_destructor(
-  yyParser *yypParser,    /* The parser */
-  YYCODETYPE yymajor,     /* Type code for object to destroy */
-  YYMINORTYPE *yypminor   /* The object to be destroyed */
-){
-  OPMLARG_FETCH;
-  switch( yymajor ){
-    /* Here is inserted the actions which take place when a
-    ** terminal or non-terminal is destroyed.  This can happen
-    ** when the symbol is popped from the stack during a
-    ** reduce or during error processing or when a parser is 
-    ** being destroyed before it is finished parsing.
-    **
-    ** Note: during a reduce, the only symbols destroyed are those
-    ** which appear on the RHS of the rule, but which are *not* used
-    ** inside the C code.
-    */
-/********* Begin destructor definitions ***************************************/
-/********* End destructor definitions *****************************************/
-    default:  break;   /* If no destructor action specified: do nothing */
-  }
+       yyParser *yypParser,    /* The parser */
+       YYCODETYPE yymajor,     /* Type code for object to destroy */
+       YYMINORTYPE *yypminor   /* The object to be destroyed */
+) {
+       OPMLARG_FETCH;
+
+       switch ( yymajor ) {
+               /* Here is inserted the actions which take place when a
+               ** terminal or non-terminal is destroyed.  This can happen
+               ** when the symbol is popped from the stack during a
+               ** reduce or during error processing or when a parser is
+               ** being destroyed before it is finished parsing.
+               **
+               ** Note: during a reduce, the only symbols destroyed are those
+               ** which appear on the RHS of the rule, but which are *not* used
+               ** inside the C code.
+               */
+               /********* Begin destructor definitions ***************************************/
+               /********* End destructor definitions *****************************************/
+               default:
+                       break;   /* If no destructor action specified: do nothing */
+       }
 }
 
 /*
@@ -478,22 +496,24 @@ static void yy_destructor(
 ** If there is a destructor routine associated with the token which
 ** is popped from the stack, then call it.
 */
-static void yy_pop_parser_stack(yyParser *pParser){
-  yyStackEntry *yytos;
-  assert( pParser->yytos!=0 );
-  assert( pParser->yytos > pParser->yystack );
-  yytos = pParser->yytos--;
-#ifndef NDEBUG
-  if( yyTraceFILE ){
-    fprintf(yyTraceFILE,"%sPopping %s\n",
-      yyTracePrompt,
-      yyTokenName[yytos->major]);
-  }
-#endif
-  yy_destructor(pParser, yytos->major, &yytos->minor);
+static void yy_pop_parser_stack(yyParser *pParser) {
+       yyStackEntry *yytos;
+       assert( pParser->yytos != 0 );
+       assert( pParser->yytos > pParser->yystack );
+       yytos = pParser->yytos--;
+       #ifndef NDEBUG
+
+       if ( yyTraceFILE ) {
+               fprintf(yyTraceFILE, "%sPopping %s\n",
+                               yyTracePrompt,
+                               yyTokenName[yytos->major]);
+       }
+
+       #endif
+       yy_destructor(pParser, yytos->major, &yytos->minor);
 }
 
-/* 
+/*
 ** Deallocate and destroy a parser.  Destructors are called for
 ** all stack elements before shutting the parser down.
 **
@@ -502,27 +522,39 @@ static void yy_pop_parser_stack(yyParser *pParser){
 ** assumed that the input pointer is never NULL.
 */
 void OPMLFree(
-  void *p,                    /* The parser to be deleted */
-  void (*freeProc)(void*)     /* Function used to reclaim memory */
-){
-  yyParser *pParser = (yyParser*)p;
-#ifndef YYPARSEFREENEVERNULL
-  if( pParser==0 ) return;
-#endif
-  while( pParser->yytos>pParser->yystack ) yy_pop_parser_stack(pParser);
-#if YYSTACKDEPTH<=0
-  if( pParser->yystack!=&pParser->yystk0 ) free(pParser->yystack);
-#endif
-  (*freeProc)((void*)pParser);
+       void *p,                    /* The parser to be deleted */
+       void (*freeProc)(void*)     /* Function used to reclaim memory */
+) {
+       yyParser *pParser = (yyParser*)p;
+       #ifndef YYPARSEFREENEVERNULL
+
+       if ( pParser == 0 ) {
+               return;
+       }
+
+       #endif
+
+       while ( pParser->yytos > pParser->yystack ) {
+               yy_pop_parser_stack(pParser);
+       }
+
+       #if YYSTACKDEPTH<=0
+
+       if ( pParser->yystack != &pParser->yystk0 ) {
+               free(pParser->yystack);
+       }
+
+       #endif
+       (*freeProc)((void*)pParser);
 }
 
 /*
 ** Return the peak depth of the stack for a parser.
 */
 #ifdef YYTRACKMAXSTACKDEPTH
-int OPMLStackPeak(void *p){
-  yyParser *pParser = (yyParser*)p;
-  return pParser->yyhwm;
+int OPMLStackPeak(void *p) {
+       yyParser *pParser = (yyParser*)p;
+       return pParser->yyhwm;
 }
 #endif
 
@@ -531,62 +563,74 @@ int OPMLStackPeak(void *p){
 ** look-ahead token iLookAhead.
 */
 static unsigned int yy_find_shift_action(
-  yyParser *pParser,        /* The parser */
-  YYCODETYPE iLookAhead     /* The look-ahead token */
-){
-  int i;
-  int stateno = pParser->yytos->stateno;
-  if( stateno>=YY_MIN_REDUCE ) return stateno;
-  assert( stateno <= YY_SHIFT_COUNT );
-  do{
-    i = yy_shift_ofst[stateno];
-    assert( iLookAhead!=YYNOCODE );
-    i += iLookAhead;
-    if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){
-#ifdef YYFALLBACK
-      YYCODETYPE iFallback;            /* Fallback token */
-      if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0])
-             && (iFallback = yyFallback[iLookAhead])!=0 ){
-#ifndef NDEBUG
-        if( yyTraceFILE ){
-          fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
-             yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
-        }
-#endif
-        assert( yyFallback[iFallback]==0 ); /* Fallback loop must terminate */
-        iLookAhead = iFallback;
-        continue;
-      }
-#endif
-#ifdef YYWILDCARD
-      {
-        int j = i - iLookAhead + YYWILDCARD;
-        if( 
-#if YY_SHIFT_MIN+YYWILDCARD<0
-          j>=0 &&
-#endif
-#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
-          j<YY_ACTTAB_COUNT &&
-#endif
-          yy_lookahead[j]==YYWILDCARD && iLookAhead>0
-        ){
-#ifndef NDEBUG
-          if( yyTraceFILE ){
-            fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n",
-               yyTracePrompt, yyTokenName[iLookAhead],
-               yyTokenName[YYWILDCARD]);
-          }
-#endif /* NDEBUG */
-          return yy_action[j];
-        }
-      }
-#endif /* YYWILDCARD */
-      return yy_default[stateno];
-    }else{
-      return yy_action[i];
-    }
-  }while(1);
+       yyParser *pParser,        /* The parser */
+       YYCODETYPE iLookAhead     /* The look-ahead token */
+) {
+       int i;
+       int stateno = pParser->yytos->stateno;
+
+       if ( stateno >= YY_MIN_REDUCE ) {
+               return stateno;
+       }
+
+       assert( stateno <= YY_SHIFT_COUNT );
+
+       do {
+               i = yy_shift_ofst[stateno];
+               assert( iLookAhead != YYNOCODE );
+               i += iLookAhead;
+
+               if ( i < 0 || i >= YY_ACTTAB_COUNT || yy_lookahead[i] != iLookAhead ) {
+                       #ifdef YYFALLBACK
+                       YYCODETYPE iFallback;            /* Fallback token */
+
+                       if ( iLookAhead < sizeof(yyFallback) / sizeof(yyFallback[0])
+                                       && (iFallback = yyFallback[iLookAhead]) != 0 ) {
+                               #ifndef NDEBUG
+
+                               if ( yyTraceFILE ) {
+                                       fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
+                                                       yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
+                               }
+
+                               #endif
+                               assert( yyFallback[iFallback] == 0 ); /* Fallback loop must terminate */
+                               iLookAhead = iFallback;
+                               continue;
+                       }
+
+                       #endif
+                       #ifdef YYWILDCARD
+                       {
+                               int j = i - iLookAhead + YYWILDCARD;
+
+                               if (
+                               #if YY_SHIFT_MIN+YYWILDCARD<0
+                                       j >= 0 &&
+                               #endif
+                               #if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
+                                       j < YY_ACTTAB_COUNT &&
+                               #endif
+                                       yy_lookahead[j] == YYWILDCARD && iLookAhead > 0
+                               ) {
+                                       #ifndef NDEBUG
+
+                                       if ( yyTraceFILE ) {
+                                               fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n",
+                                                               yyTracePrompt, yyTokenName[iLookAhead],
+                                                               yyTokenName[YYWILDCARD]);
+                                       }
+
+                                       #endif /* NDEBUG */
+                                       return yy_action[j];
+                               }
+                       }
+                       #endif /* YYWILDCARD */
+                       return yy_default[stateno];
+               } else {
+                       return yy_action[i];
+               }
+       } while (1);
 }
 
 /*
@@ -594,66 +638,76 @@ static unsigned int yy_find_shift_action(
 ** look-ahead token iLookAhead.
 */
 static int yy_find_reduce_action(
-  int stateno,              /* Current state number */
-  YYCODETYPE iLookAhead     /* The look-ahead token */
-){
-  int i;
-#ifdef YYERRORSYMBOL
-  if( stateno>YY_REDUCE_COUNT ){
-    return yy_default[stateno];
-  }
-#else
-  assert( stateno<=YY_REDUCE_COUNT );
-#endif
-  i = yy_reduce_ofst[stateno];
-  assert( i!=YY_REDUCE_USE_DFLT );
-  assert( iLookAhead!=YYNOCODE );
-  i += iLookAhead;
-#ifdef YYERRORSYMBOL
-  if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){
-    return yy_default[stateno];
-  }
-#else
-  assert( i>=0 && i<YY_ACTTAB_COUNT );
-  assert( yy_lookahead[i]==iLookAhead );
-#endif
-  return yy_action[i];
+       int stateno,              /* Current state number */
+       YYCODETYPE iLookAhead     /* The look-ahead token */
+) {
+       int i;
+       #ifdef YYERRORSYMBOL
+
+       if ( stateno > YY_REDUCE_COUNT ) {
+               return yy_default[stateno];
+       }
+
+       #else
+       assert( stateno <= YY_REDUCE_COUNT );
+       #endif
+       i = yy_reduce_ofst[stateno];
+       assert( i != YY_REDUCE_USE_DFLT );
+       assert( iLookAhead != YYNOCODE );
+       i += iLookAhead;
+       #ifdef YYERRORSYMBOL
+
+       if ( i < 0 || i >= YY_ACTTAB_COUNT || yy_lookahead[i] != iLookAhead ) {
+               return yy_default[stateno];
+       }
+
+       #else
+       assert( i >= 0 && i < YY_ACTTAB_COUNT );
+       assert( yy_lookahead[i] == iLookAhead );
+       #endif
+       return yy_action[i];
 }
 
 /*
 ** The following routine is called if the stack overflows.
 */
-static void yyStackOverflow(yyParser *yypParser){
-   OPMLARG_FETCH;
-   yypParser->yytos--;
-#ifndef NDEBUG
-   if( yyTraceFILE ){
-     fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt);
-   }
-#endif
-   while( yypParser->yytos>yypParser->yystack ) yy_pop_parser_stack(yypParser);
-   /* Here code is inserted which will execute if the parser
-   ** stack every overflows */
-/******** Begin %stack_overflow code ******************************************/
-/******** End %stack_overflow code ********************************************/
-   OPMLARG_STORE; /* Suppress warning about unused %extra_argument var */
+static void yyStackOverflow(yyParser *yypParser) {
+       OPMLARG_FETCH;
+       yypParser->yytos--;
+       #ifndef NDEBUG
+
+       if ( yyTraceFILE ) {
+               fprintf(yyTraceFILE, "%sStack Overflow!\n", yyTracePrompt);
+       }
+
+       #endif
+
+       while ( yypParser->yytos > yypParser->yystack ) {
+               yy_pop_parser_stack(yypParser);
+       }
+
+       /* Here code is inserted which will execute if the parser
+       ** stack every overflows */
+       /******** Begin %stack_overflow code ******************************************/
+       /******** End %stack_overflow code ********************************************/
+       OPMLARG_STORE; /* Suppress warning about unused %extra_argument var */
 }
 
 /*
 ** Print tracing information for a SHIFT action
 */
 #ifndef NDEBUG
-static void yyTraceShift(yyParser *yypParser, int yyNewState){
-  if( yyTraceFILE ){
-    if( yyNewState<YYNSTATE ){
-      fprintf(yyTraceFILE,"%sShift '%s', go to state %d\n",
-         yyTracePrompt,yyTokenName[yypParser->yytos->major],
-         yyNewState);
-    }else{
-      fprintf(yyTraceFILE,"%sShift '%s'\n",
-         yyTracePrompt,yyTokenName[yypParser->yytos->major]);
-    }
-  }
+static void yyTraceShift(yyParser *yypParser, int yyNewState) {
+       if ( yyTraceFILE ) {
+               if ( yyNewState < YYNSTATE ) {
+                       fprintf(yyTraceFILE, "%sShift '%s', go to state %d\n",
+                                       yyTracePrompt, yyTokenName[yypParser->yytos->major],
+                                       yyNewState);
+               } else {
+                       fprintf(yyTraceFILE, "%sShift '%s'\n",
+                                       yyTracePrompt, yyTokenName[yypParser->yytos->major]);
+               }
+       }
 }
 #else
 # define yyTraceShift(X,Y)
@@ -663,66 +717,74 @@ static void yyTraceShift(yyParser *yypParser, int yyNewState){
 ** Perform a shift action.
 */
 static void yy_shift(
-  yyParser *yypParser,          /* The parser to be shifted */
-  int yyNewState,               /* The new state to shift in */
-  int yyMajor,                  /* The major token to shift in */
-  OPMLTOKENTYPE yyMinor        /* The minor token to shift in */
-){
-  yyStackEntry *yytos;
-  yypParser->yytos++;
-#ifdef YYTRACKMAXSTACKDEPTH
-  if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){
-    yypParser->yyhwm++;
-    assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack) );
-  }
-#endif
-#if YYSTACKDEPTH>0 
-  if( yypParser->yytos>=&yypParser->yystack[YYSTACKDEPTH] ){
-    yyStackOverflow(yypParser);
-    return;
-  }
-#else
-  if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz] ){
-    if( yyGrowStack(yypParser) ){
-      yyStackOverflow(yypParser);
-      return;
-    }
-  }
-#endif
-  if( yyNewState > YY_MAX_SHIFT ){
-    yyNewState += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE;
-  }
-  yytos = yypParser->yytos;
-  yytos->stateno = (YYACTIONTYPE)yyNewState;
-  yytos->major = (YYCODETYPE)yyMajor;
-  yytos->minor.yy0 = yyMinor;
-  yyTraceShift(yypParser, yyNewState);
+       yyParser *yypParser,          /* The parser to be shifted */
+       int yyNewState,               /* The new state to shift in */
+       int yyMajor,                  /* The major token to shift in */
+       OPMLTOKENTYPE yyMinor        /* The minor token to shift in */
+) {
+       yyStackEntry *yytos;
+       yypParser->yytos++;
+       #ifdef YYTRACKMAXSTACKDEPTH
+
+       if ( (int)(yypParser->yytos - yypParser->yystack) > yypParser->yyhwm ) {
+               yypParser->yyhwm++;
+               assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack) );
+       }
+
+       #endif
+       #if YYSTACKDEPTH>0
+
+       if ( yypParser->yytos >= &yypParser->yystack[YYSTACKDEPTH] ) {
+               yyStackOverflow(yypParser);
+               return;
+       }
+
+       #else
+
+       if ( yypParser->yytos >= &yypParser->yystack[yypParser->yystksz] ) {
+               if ( yyGrowStack(yypParser) ) {
+                       yyStackOverflow(yypParser);
+                       return;
+               }
+       }
+
+       #endif
+
+       if ( yyNewState > YY_MAX_SHIFT ) {
+               yyNewState += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE;
+       }
+
+       yytos = yypParser->yytos;
+       yytos->stateno = (YYACTIONTYPE)yyNewState;
+       yytos->major = (YYCODETYPE)yyMajor;
+       yytos->minor.yy0 = yyMinor;
+       yyTraceShift(yypParser, yyNewState);
 }
 
 /* The following table contains information about every rule that
 ** is used during the reduce.
 */
 static const struct {
-  YYCODETYPE lhs;         /* Symbol on the left-hand side of the rule */
-  unsigned char nrhs;     /* Number of right-hand side symbols in the rule */
+       YYCODETYPE lhs;         /* Symbol on the left-hand side of the rule */
+       unsigned char nrhs;     /* Number of right-hand side symbols in the rule */
 } yyRuleInfo[] = {
-  { 17, 1 },
-  { 18, 2 },
-  { 18, 3 },
-  { 19, 4 },
-  { 19, 3 },
-  { 20, 3 },
-  { 20, 2 },
-  { 22, 2 },
-  { 21, 3 },
-  { 21, 2 },
-  { 23, 2 },
-  { 23, 1 },
-  { 24, 2 },
-  { 24, 2 },
-  { 24, 3 },
-  { 24, 3 },
-  { 24, 1 },
+       { 17, 1 },
+       { 18, 2 },
+       { 18, 3 },
+       { 19, 4 },
+       { 19, 3 },
+       { 20, 3 },
+       { 20, 2 },
+       { 22, 2 },
+       { 21, 3 },
+       { 21, 2 },
+       { 23, 2 },
+       { 23, 1 },
+       { 24, 2 },
+       { 24, 2 },
+       { 24, 3 },
+       { 24, 3 },
+       { 24, 1 },
 };
 
 static void yy_accept(yyParser*);  /* Forward Declaration */
@@ -732,100 +794,118 @@ static void yy_accept(yyParser*);  /* Forward Declaration */
 ** follow the reduce.
 */
 static void yy_reduce(
-  yyParser *yypParser,         /* The parser */
-  unsigned int yyruleno        /* Number of the rule by which to reduce */
-){
-  int yygoto;                     /* The next state */
-  int yyact;                      /* The next action */
-  yyStackEntry *yymsp;            /* The top of the parser's stack */
-  int yysize;                     /* Amount to pop the stack */
-  OPMLARG_FETCH;
-  yymsp = yypParser->yytos;
-#ifndef NDEBUG
-  if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){
-    yysize = yyRuleInfo[yyruleno].nrhs;
-    fprintf(yyTraceFILE, "%sReduce [%s], go to state %d.\n", yyTracePrompt,
-      yyRuleName[yyruleno], yymsp[-yysize].stateno);
-  }
-#endif /* NDEBUG */
+       yyParser *yypParser,         /* The parser */
+       unsigned int yyruleno        /* Number of the rule by which to reduce */
+) {
+       int yygoto;                     /* The next state */
+       int yyact;                      /* The next action */
+       yyStackEntry *yymsp;            /* The top of the parser's stack */
+       int yysize;                     /* Amount to pop the stack */
+       OPMLARG_FETCH;
+       yymsp = yypParser->yytos;
+       #ifndef NDEBUG
 
-  /* Check that the stack is large enough to grow by a single entry
-  ** if the RHS of the rule is empty.  This ensures that there is room
-  ** enough on the stack to push the LHS value */
-  if( yyRuleInfo[yyruleno].nrhs==0 ){
-#ifdef YYTRACKMAXSTACKDEPTH
-    if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){
-      yypParser->yyhwm++;
-      assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack));
-    }
-#endif
-#if YYSTACKDEPTH>0 
-    if( yypParser->yytos>=&yypParser->yystack[YYSTACKDEPTH-1] ){
-      yyStackOverflow(yypParser);
-      return;
-    }
-#else
-    if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){
-      if( yyGrowStack(yypParser) ){
-        yyStackOverflow(yypParser);
-        return;
-      }
-      yymsp = yypParser->yytos;
-    }
-#endif
-  }
-
-  switch( yyruleno ){
-  /* Beginning here are the reduction cases.  A typical example
-  ** follows:
-  **   case 0:
-  **  #line <lineno> <grammarfile>
-  **     { ... }           // User supplied code
-  **  #line <lineno> <thisfile>
-  **     break;
-  */
-/********** Begin reduce actions **********************************************/
-      case 0: /* doc ::= doc_xml */
-{ engine->root = yymsp[0].minor.yy0; }
-        break;
-      default:
-      /* (1) doc_xml ::= OPML_XML doc_opml */ yytestcase(yyruleno==1);
-      /* (2) doc_xml ::= OPML_XML doc_opml OPML_WSNL */ yytestcase(yyruleno==2);
-      /* (3) doc_opml ::= OPML_OPML_OPEN opml_header opml_body OPML_OPML_CLOSE */ yytestcase(yyruleno==3);
-      /* (4) doc_opml ::= OPML_OPML_OPEN opml_body OPML_OPML_CLOSE */ yytestcase(yyruleno==4);
-      /* (5) opml_header ::= OPML_HEAD_OPEN opml_title OPML_HEAD_CLOSE */ yytestcase(yyruleno==5);
-      /* (6) opml_header ::= OPML_HEAD_OPEN OPML_HEAD_CLOSE */ yytestcase(yyruleno==6);
-      /* (7) opml_title ::= OPML_TITLE_OPEN OPML_TITLE_CLOSE */ yytestcase(yyruleno==7);
-      /* (8) opml_body ::= OPML_BODY_OPEN opml_outlines OPML_BODY_CLOSE */ yytestcase(yyruleno==8);
-      /* (9) opml_body ::= OPML_BODY_OPEN OPML_BODY_CLOSE */ yytestcase(yyruleno==9);
-      /* (10) opml_outlines ::= opml_outlines opml_outline */ yytestcase(yyruleno==10);
-      /* (11) opml_outlines ::= opml_outline (OPTIMIZED OUT) */ assert(yyruleno!=11);
-      /* (12) opml_outline ::= OPML_OUTLINE_OPEN OPML_OUTLINE_CLOSE */ yytestcase(yyruleno==12);
-      /* (13) opml_outline ::= OPML_OUTLINE_PREAMBLE OPML_OUTLINE_CLOSE */ yytestcase(yyruleno==13);
-      /* (14) opml_outline ::= OPML_OUTLINE_OPEN opml_outlines OPML_OUTLINE_CLOSE */ yytestcase(yyruleno==14);
-      /* (15) opml_outline ::= OPML_OUTLINE_METADATA opml_outlines OPML_OUTLINE_CLOSE */ yytestcase(yyruleno==15);
-      /* (16) opml_outline ::= OPML_OUTLINE_SELF_CLOSE */ yytestcase(yyruleno==16);
-        break;
-/********** End reduce actions ************************************************/
-  };
-  assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
-  yygoto = yyRuleInfo[yyruleno].lhs;
-  yysize = yyRuleInfo[yyruleno].nrhs;
-  yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto);
-  if( yyact <= YY_MAX_SHIFTREDUCE ){
-    if( yyact>YY_MAX_SHIFT ){
-      yyact += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE;
-    }
-    yymsp -= yysize-1;
-    yypParser->yytos = yymsp;
-    yymsp->stateno = (YYACTIONTYPE)yyact;
-    yymsp->major = (YYCODETYPE)yygoto;
-    yyTraceShift(yypParser, yyact);
-  }else{
-    assert( yyact == YY_ACCEPT_ACTION );
-    yypParser->yytos -= yysize;
-    yy_accept(yypParser);
-  }
+       if ( yyTraceFILE && yyruleno < (int)(sizeof(yyRuleName) / sizeof(yyRuleName[0])) ) {
+               yysize = yyRuleInfo[yyruleno].nrhs;
+               fprintf(yyTraceFILE, "%sReduce [%s], go to state %d.\n", yyTracePrompt,
+                               yyRuleName[yyruleno], yymsp[-yysize].stateno);
+       }
+
+       #endif /* NDEBUG */
+
+       /* Check that the stack is large enough to grow by a single entry
+       ** if the RHS of the rule is empty.  This ensures that there is room
+       ** enough on the stack to push the LHS value */
+       if ( yyRuleInfo[yyruleno].nrhs == 0 ) {
+               #ifdef YYTRACKMAXSTACKDEPTH
+
+               if ( (int)(yypParser->yytos - yypParser->yystack) > yypParser->yyhwm ) {
+                       yypParser->yyhwm++;
+                       assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack));
+               }
+
+               #endif
+               #if YYSTACKDEPTH>0
+
+               if ( yypParser->yytos >= &yypParser->yystack[YYSTACKDEPTH - 1] ) {
+                       yyStackOverflow(yypParser);
+                       return;
+               }
+
+               #else
+
+               if ( yypParser->yytos >= &yypParser->yystack[yypParser->yystksz - 1] ) {
+                       if ( yyGrowStack(yypParser) ) {
+                               yyStackOverflow(yypParser);
+                               return;
+                       }
+
+                       yymsp = yypParser->yytos;
+               }
+
+               #endif
+       }
+
+       switch ( yyruleno ) {
+               /* Beginning here are the reduction cases.  A typical example
+               ** follows:
+               **   case 0:
+               **  #line <lineno> <grammarfile>
+               **     { ... }           // User supplied code
+               **  #line <lineno> <thisfile>
+               **     break;
+               */
+               /********** Begin reduce actions **********************************************/
+               case 0: { /* doc ::= doc_xml */
+                       engine->root = yymsp[0].minor.yy0;
+               }
+               break;
+
+               default:
+                       /* (1) doc_xml ::= OPML_XML doc_opml */
+                       yytestcase(yyruleno == 1);
+                       /* (2) doc_xml ::= OPML_XML doc_opml OPML_WSNL */ yytestcase(yyruleno == 2);
+                       /* (3) doc_opml ::= OPML_OPML_OPEN opml_header opml_body OPML_OPML_CLOSE */ yytestcase(yyruleno == 3);
+                       /* (4) doc_opml ::= OPML_OPML_OPEN opml_body OPML_OPML_CLOSE */ yytestcase(yyruleno == 4);
+                       /* (5) opml_header ::= OPML_HEAD_OPEN opml_title OPML_HEAD_CLOSE */ yytestcase(yyruleno == 5);
+                       /* (6) opml_header ::= OPML_HEAD_OPEN OPML_HEAD_CLOSE */ yytestcase(yyruleno == 6);
+                       /* (7) opml_title ::= OPML_TITLE_OPEN OPML_TITLE_CLOSE */ yytestcase(yyruleno == 7);
+                       /* (8) opml_body ::= OPML_BODY_OPEN opml_outlines OPML_BODY_CLOSE */ yytestcase(yyruleno == 8);
+                       /* (9) opml_body ::= OPML_BODY_OPEN OPML_BODY_CLOSE */ yytestcase(yyruleno == 9);
+                       /* (10) opml_outlines ::= opml_outlines opml_outline */ yytestcase(yyruleno == 10);
+                       /* (11) opml_outlines ::= opml_outline (OPTIMIZED OUT) */ assert(yyruleno != 11);
+                       /* (12) opml_outline ::= OPML_OUTLINE_OPEN OPML_OUTLINE_CLOSE */ yytestcase(yyruleno == 12);
+                       /* (13) opml_outline ::= OPML_OUTLINE_PREAMBLE OPML_OUTLINE_CLOSE */ yytestcase(yyruleno == 13);
+                       /* (14) opml_outline ::= OPML_OUTLINE_OPEN opml_outlines OPML_OUTLINE_CLOSE */ yytestcase(yyruleno == 14);
+                       /* (15) opml_outline ::= OPML_OUTLINE_METADATA opml_outlines OPML_OUTLINE_CLOSE */ yytestcase(yyruleno == 15);
+                       /* (16) opml_outline ::= OPML_OUTLINE_SELF_CLOSE */ yytestcase(yyruleno == 16);
+                       break;
+                       /********** End reduce actions ************************************************/
+       };
+
+       assert( yyruleno < sizeof(yyRuleInfo) / sizeof(yyRuleInfo[0]) );
+
+       yygoto = yyRuleInfo[yyruleno].lhs;
+
+       yysize = yyRuleInfo[yyruleno].nrhs;
+
+       yyact = yy_find_reduce_action(yymsp[-yysize].stateno, (YYCODETYPE)yygoto);
+
+       if ( yyact <= YY_MAX_SHIFTREDUCE ) {
+               if ( yyact > YY_MAX_SHIFT ) {
+                       yyact += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE;
+               }
+
+               yymsp -= yysize - 1;
+               yypParser->yytos = yymsp;
+               yymsp->stateno = (YYACTIONTYPE)yyact;
+               yymsp->major = (YYCODETYPE)yygoto;
+               yyTraceShift(yypParser, yyact);
+       } else {
+               assert( yyact == YY_ACCEPT_ACTION );
+               yypParser->yytos -= yysize;
+               yy_accept(yypParser);
+       }
 }
 
 /*
@@ -833,22 +913,28 @@ static void yy_reduce(
 */
 #ifndef YYNOERRORRECOVERY
 static void yy_parse_failed(
-  yyParser *yypParser           /* The parser */
-){
-  OPMLARG_FETCH;
-#ifndef NDEBUG
-  if( yyTraceFILE ){
-    fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt);
-  }
-#endif
-  while( yypParser->yytos>yypParser->yystack ) yy_pop_parser_stack(yypParser);
-  /* Here code is inserted which will be executed whenever the
-  ** parser fails */
-/************ Begin %parse_failure code ***************************************/
+       yyParser *yypParser           /* The parser */
+) {
+       OPMLARG_FETCH;
+       #ifndef NDEBUG
+
+       if ( yyTraceFILE ) {
+               fprintf(yyTraceFILE, "%sFail!\n", yyTracePrompt);
+       }
+
+       #endif
+
+       while ( yypParser->yytos > yypParser->yystack ) {
+               yy_pop_parser_stack(yypParser);
+       }
+
+       /* Here code is inserted which will be executed whenever the
+       ** parser fails */
+       /************ Begin %parse_failure code ***************************************/
 
        fprintf(stderr, "Parser failed to successfully parse.\n");
-/************ End %parse_failure code *****************************************/
-  OPMLARG_STORE; /* Suppress warning about unused %extra_argument variable */
+       /************ End %parse_failure code *****************************************/
+       OPMLARG_STORE; /* Suppress warning about unused %extra_argument variable */
 }
 #endif /* YYNOERRORRECOVERY */
 
@@ -856,52 +942,57 @@ static void yy_parse_failed(
 ** The following code executes when a syntax error first occurs.
 */
 static void yy_syntax_error(
-  yyParser *yypParser,           /* The parser */
-  int yymajor,                   /* The major type of the error token */
-  OPMLTOKENTYPE yyminor         /* The minor type of the error token */
-){
-  OPMLARG_FETCH;
+       yyParser *yypParser,           /* The parser */
+       int yymajor,                   /* The major type of the error token */
+       OPMLTOKENTYPE yyminor         /* The minor type of the error token */
+) {
+       OPMLARG_FETCH;
 #define TOKEN yyminor
-/************ Begin %syntax_error code ****************************************/
+       /************ Begin %syntax_error code ****************************************/
 
-       fprintf(stderr,"Parser syntax error.\n");
-#ifndef NDEBUG
-       fprintf(stderr,"Parser syntax error.\n");
+       fprintf(stderr, "Parser syntax error.\n");
+       #ifndef NDEBUG
+       fprintf(stderr, "Parser syntax error.\n");
        int n = sizeof(yyTokenName) / sizeof(yyTokenName[0]);
+
        for (int i = 0; i < n; ++i) {
                int a = yy_find_shift_action(yypParser, (YYCODETYPE)i);
+
                if (a < YYNSTATE + YYNRULE) {
-                       fprintf(stderr,"expected token: %s\n", yyTokenName[i]);
+                       fprintf(stderr, "expected token: %s\n", yyTokenName[i]);
                }
        }
-#endif
-/************ End %syntax_error code ******************************************/
-  OPMLARG_STORE; /* Suppress warning about unused %extra_argument variable */
+
+       #endif
+       /************ End %syntax_error code ******************************************/
+       OPMLARG_STORE; /* Suppress warning about unused %extra_argument variable */
 }
 
 /*
 ** The following is executed when the parser accepts
 */
 static void yy_accept(
-  yyParser *yypParser           /* The parser */
-){
-  OPMLARG_FETCH;
-#ifndef NDEBUG
-  if( yyTraceFILE ){
-    fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt);
-  }
-#endif
-#ifndef YYNOERRORRECOVERY
-  yypParser->yyerrcnt = -1;
-#endif
-  assert( yypParser->yytos==yypParser->yystack );
-  /* Here code is inserted which will be executed whenever the
-  ** parser accepts */
-/*********** Begin %parse_accept code *****************************************/
+       yyParser *yypParser           /* The parser */
+) {
+       OPMLARG_FETCH;
+       #ifndef NDEBUG
+
+       if ( yyTraceFILE ) {
+               fprintf(yyTraceFILE, "%sAccept!\n", yyTracePrompt);
+       }
+
+       #endif
+       #ifndef YYNOERRORRECOVERY
+       yypParser->yyerrcnt = -1;
+       #endif
+       assert( yypParser->yytos == yypParser->yystack );
+       /* Here code is inserted which will be executed whenever the
+       ** parser accepts */
+       /*********** Begin %parse_accept code *****************************************/
 
 //     printf("parsing completed successfully!\n");
-/*********** End %parse_accept code *******************************************/
-  OPMLARG_STORE; /* Suppress warning about unused %extra_argument variable */
+       /*********** End %parse_accept code *******************************************/
+       OPMLARG_STORE; /* Suppress warning about unused %extra_argument variable */
 }
 
 /* The main parser program.
@@ -924,158 +1015,179 @@ static void yy_accept(
 ** None.
 */
 void OPML(
-  void *yyp,                   /* The parser */
-  int yymajor,                 /* The major token code number */
-  OPMLTOKENTYPE yyminor       /* The value for the token */
-  OPMLARG_PDECL               /* Optional %extra_argument parameter */
-){
-  YYMINORTYPE yyminorunion;
-  unsigned int yyact;   /* The parser action. */
-#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
-  int yyendofinput;     /* True if we are at the end of input */
-#endif
-#ifdef YYERRORSYMBOL
-  int yyerrorhit = 0;   /* True if yymajor has invoked an error */
-#endif
-  yyParser *yypParser;  /* The parser */
+       void *yyp,                   /* The parser */
+       int yymajor,                 /* The major token code number */
+       OPMLTOKENTYPE yyminor       /* The value for the token */
+       OPMLARG_PDECL               /* Optional %extra_argument parameter */
+) {
+       YYMINORTYPE yyminorunion;
+       unsigned int yyact;   /* The parser action. */
+       #if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
+       int yyendofinput;     /* True if we are at the end of input */
+       #endif
+       #ifdef YYERRORSYMBOL
+       int yyerrorhit = 0;   /* True if yymajor has invoked an error */
+       #endif
+       yyParser *yypParser;  /* The parser */
 
-  yypParser = (yyParser*)yyp;
-  assert( yypParser->yytos!=0 );
-#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
-  yyendofinput = (yymajor==0);
-#endif
-  OPMLARG_STORE;
+       yypParser = (yyParser*)yyp;
+       assert( yypParser->yytos != 0 );
+       #if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
+       yyendofinput = (yymajor == 0);
+       #endif
+       OPMLARG_STORE;
 
-#ifndef NDEBUG
-  if( yyTraceFILE ){
-    fprintf(yyTraceFILE,"%sInput '%s'\n",yyTracePrompt,yyTokenName[yymajor]);
-  }
-#endif
+       #ifndef NDEBUG
 
-  do{
-    yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor);
-    if( yyact <= YY_MAX_SHIFTREDUCE ){
-      yy_shift(yypParser,yyact,yymajor,yyminor);
-#ifndef YYNOERRORRECOVERY
-      yypParser->yyerrcnt--;
-#endif
-      yymajor = YYNOCODE;
-    }else if( yyact <= YY_MAX_REDUCE ){
-      yy_reduce(yypParser,yyact-YY_MIN_REDUCE);
-    }else{
-      assert( yyact == YY_ERROR_ACTION );
-      yyminorunion.yy0 = yyminor;
-#ifdef YYERRORSYMBOL
-      int yymx;
-#endif
-#ifndef NDEBUG
-      if( yyTraceFILE ){
-        fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt);
-      }
-#endif
-#ifdef YYERRORSYMBOL
-      /* A syntax error has occurred.
-      ** The response to an error depends upon whether or not the
-      ** grammar defines an error token "ERROR".  
-      **
-      ** This is what we do if the grammar does define ERROR:
-      **
-      **  * Call the %syntax_error function.
-      **
-      **  * Begin popping the stack until we enter a state where
-      **    it is legal to shift the error symbol, then shift
-      **    the error symbol.
-      **
-      **  * Set the error count to three.
-      **
-      **  * Begin accepting and shifting new tokens.  No new error
-      **    processing will occur until three tokens have been
-      **    shifted successfully.
-      **
-      */
-      if( yypParser->yyerrcnt<0 ){
-        yy_syntax_error(yypParser,yymajor,yyminor);
-      }
-      yymx = yypParser->yytos->major;
-      if( yymx==YYERRORSYMBOL || yyerrorhit ){
-#ifndef NDEBUG
-        if( yyTraceFILE ){
-          fprintf(yyTraceFILE,"%sDiscard input token %s\n",
-             yyTracePrompt,yyTokenName[yymajor]);
-        }
-#endif
-        yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion);
-        yymajor = YYNOCODE;
-      }else{
-        while( yypParser->yytos >= yypParser->yystack
-            && yymx != YYERRORSYMBOL
-            && (yyact = yy_find_reduce_action(
-                        yypParser->yytos->stateno,
-                        YYERRORSYMBOL)) >= YY_MIN_REDUCE
-        ){
-          yy_pop_parser_stack(yypParser);
-        }
-        if( yypParser->yytos < yypParser->yystack || yymajor==0 ){
-          yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
-          yy_parse_failed(yypParser);
-#ifndef YYNOERRORRECOVERY
-          yypParser->yyerrcnt = -1;
-#endif
-          yymajor = YYNOCODE;
-        }else if( yymx!=YYERRORSYMBOL ){
-          yy_shift(yypParser,yyact,YYERRORSYMBOL,yyminor);
-        }
-      }
-      yypParser->yyerrcnt = 3;
-      yyerrorhit = 1;
-#elif defined(YYNOERRORRECOVERY)
-      /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to
-      ** do any kind of error recovery.  Instead, simply invoke the syntax
-      ** error routine and continue going as if nothing had happened.
-      **
-      ** Applications can set this macro (for example inside %include) if
-      ** they intend to abandon the parse upon the first syntax error seen.
-      */
-      yy_syntax_error(yypParser,yymajor, yyminor);
-      yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
-      yymajor = YYNOCODE;
-      
-#else  /* YYERRORSYMBOL is not defined */
-      /* This is what we do if the grammar does not define ERROR:
-      **
-      **  * Report an error message, and throw away the input token.
-      **
-      **  * If the input token is $, then fail the parse.
-      **
-      ** As before, subsequent error messages are suppressed until
-      ** three input tokens have been successfully shifted.
-      */
-      if( yypParser->yyerrcnt<=0 ){
-        yy_syntax_error(yypParser,yymajor, yyminor);
-      }
-      yypParser->yyerrcnt = 3;
-      yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
-      if( yyendofinput ){
-        yy_parse_failed(yypParser);
-#ifndef YYNOERRORRECOVERY
-        yypParser->yyerrcnt = -1;
-#endif
-      }
-      yymajor = YYNOCODE;
-#endif
-    }
-  }while( yymajor!=YYNOCODE && yypParser->yytos>yypParser->yystack );
-#ifndef NDEBUG
-  if( yyTraceFILE ){
-    yyStackEntry *i;
-    char cDiv = '[';
-    fprintf(yyTraceFILE,"%sReturn. Stack=",yyTracePrompt);
-    for(i=&yypParser->yystack[1]; i<=yypParser->yytos; i++){
-      fprintf(yyTraceFILE,"%c%s", cDiv, yyTokenName[i->major]);
-      cDiv = ' ';
-    }
-    fprintf(yyTraceFILE,"]\n");
-  }
-#endif
-  return;
+       if ( yyTraceFILE ) {
+               fprintf(yyTraceFILE, "%sInput '%s'\n", yyTracePrompt, yyTokenName[yymajor]);
+       }
+
+       #endif
+
+       do {
+               yyact = yy_find_shift_action(yypParser, (YYCODETYPE)yymajor);
+
+               if ( yyact <= YY_MAX_SHIFTREDUCE ) {
+                       yy_shift(yypParser, yyact, yymajor, yyminor);
+                       #ifndef YYNOERRORRECOVERY
+                       yypParser->yyerrcnt--;
+                       #endif
+                       yymajor = YYNOCODE;
+               } else if ( yyact <= YY_MAX_REDUCE ) {
+                       yy_reduce(yypParser, yyact - YY_MIN_REDUCE);
+               } else {
+                       assert( yyact == YY_ERROR_ACTION );
+                       yyminorunion.yy0 = yyminor;
+                       #ifdef YYERRORSYMBOL
+                       int yymx;
+                       #endif
+                       #ifndef NDEBUG
+
+                       if ( yyTraceFILE ) {
+                               fprintf(yyTraceFILE, "%sSyntax Error!\n", yyTracePrompt);
+                       }
+
+                       #endif
+                       #ifdef YYERRORSYMBOL
+
+                       /* A syntax error has occurred.
+                       ** The response to an error depends upon whether or not the
+                       ** grammar defines an error token "ERROR".
+                       **
+                       ** This is what we do if the grammar does define ERROR:
+                       **
+                       **  * Call the %syntax_error function.
+                       **
+                       **  * Begin popping the stack until we enter a state where
+                       **    it is legal to shift the error symbol, then shift
+                       **    the error symbol.
+                       **
+                       **  * Set the error count to three.
+                       **
+                       **  * Begin accepting and shifting new tokens.  No new error
+                       **    processing will occur until three tokens have been
+                       **    shifted successfully.
+                       **
+                       */
+                       if ( yypParser->yyerrcnt < 0 ) {
+                               yy_syntax_error(yypParser, yymajor, yyminor);
+                       }
+
+                       yymx = yypParser->yytos->major;
+
+                       if ( yymx == YYERRORSYMBOL || yyerrorhit ) {
+                               #ifndef NDEBUG
+
+                               if ( yyTraceFILE ) {
+                                       fprintf(yyTraceFILE, "%sDiscard input token %s\n",
+                                                       yyTracePrompt, yyTokenName[yymajor]);
+                               }
+
+                               #endif
+                               yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion);
+                               yymajor = YYNOCODE;
+                       } else {
+                               while ( yypParser->yytos >= yypParser->yystack
+                                               && yymx != YYERRORSYMBOL
+                                               && (yyact = yy_find_reduce_action(
+                                                                               yypParser->yytos->stateno,
+                                                                               YYERRORSYMBOL)) >= YY_MIN_REDUCE
+                                         ) {
+                                       yy_pop_parser_stack(yypParser);
+                               }
+
+                               if ( yypParser->yytos < yypParser->yystack || yymajor == 0 ) {
+                                       yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion);
+                                       yy_parse_failed(yypParser);
+                                       #ifndef YYNOERRORRECOVERY
+                                       yypParser->yyerrcnt = -1;
+                                       #endif
+                                       yymajor = YYNOCODE;
+                               } else if ( yymx != YYERRORSYMBOL ) {
+                                       yy_shift(yypParser, yyact, YYERRORSYMBOL, yyminor);
+                               }
+                       }
+
+                       yypParser->yyerrcnt = 3;
+                       yyerrorhit = 1;
+                       #elif defined(YYNOERRORRECOVERY)
+                       /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to
+                       ** do any kind of error recovery.  Instead, simply invoke the syntax
+                       ** error routine and continue going as if nothing had happened.
+                       **
+                       ** Applications can set this macro (for example inside %include) if
+                       ** they intend to abandon the parse upon the first syntax error seen.
+                       */
+                       yy_syntax_error(yypParser, yymajor, yyminor);
+                       yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion);
+                       yymajor = YYNOCODE;
+
+                       #else  /* YYERRORSYMBOL is not defined */
+
+                       /* This is what we do if the grammar does not define ERROR:
+                       **
+                       **  * Report an error message, and throw away the input token.
+                       **
+                       **  * If the input token is $, then fail the parse.
+                       **
+                       ** As before, subsequent error messages are suppressed until
+                       ** three input tokens have been successfully shifted.
+                       */
+                       if ( yypParser->yyerrcnt <= 0 ) {
+                               yy_syntax_error(yypParser, yymajor, yyminor);
+                       }
+
+                       yypParser->yyerrcnt = 3;
+                       yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion);
+
+                       if ( yyendofinput ) {
+                               yy_parse_failed(yypParser);
+                               #ifndef YYNOERRORRECOVERY
+                               yypParser->yyerrcnt = -1;
+                               #endif
+                       }
+
+                       yymajor = YYNOCODE;
+                       #endif
+               }
+       } while ( yymajor != YYNOCODE && yypParser->yytos > yypParser->yystack );
+
+       #ifndef NDEBUG
+
+       if ( yyTraceFILE ) {
+               yyStackEntry *i;
+               char cDiv = '[';
+               fprintf(yyTraceFILE, "%sReturn. Stack=", yyTracePrompt);
+
+               for (i = &yypParser->yystack[1]; i <= yypParser->yytos; i++) {
+                       fprintf(yyTraceFILE, "%c%s", cDiv, yyTokenName[i->major]);
+                       cDiv = ' ';
+               }
+
+               fprintf(yyTraceFILE, "]\n");
+       }
+
+       #endif
+       return;
 }