/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ %token htitle5 "====="; %token htitle4 "===="; %token htitle3 "==="; %token htitle2 "=="; %token htitle1 "="; %token emitem "''"; %token strongitem "'''"; %token ulitem "__"; %token subitem "\,\,"; %token supitem "\^"; %token typewriteritem "`"; /* various smileys */ /* %token sm1 ":)"; %token sm2 ";)"; %token sm3 ":D"; ;) :D {1} {de} {OK} (./) */ %token source "\{\{\{ (\}{0,2}[^\}])* \}\}\}"; %token rule10 "^\-\-\-\-\-\-\-\-\-\-"; %token rule9 "^\-\-\-\-\-\-\-\-\-"; %token rule8 "^\-\-\-\-\-\-\-\-"; %token rule7 "^\-\-\-\-\-\-\-"; %token rule6 "^\-\-\-\-\-\-"; %token rule5 "^\-\-\-\-\-"; %token rule4 "^\-\-\-\-"; %token rule0 "^\-+"; %token tablecolumnitem "\ *\|\|"; /* TO CHECK */ /*%token anchor "\[( [^\[\|\]]* \| )? # [^\[\|\]]* \]"; */ /* %token link "\[( [^\[\|\]]* \| )? [^\[\|\]]* \]"; */ /* %token anchor "\[( [^\[\ \]]* \| )? # [^\[\]]* \]"; %token link "\[( [^\[\ \]]* \| )? [^\[\]]* \]"; */ %token anchor "\[#( [^\[\ \]]* ) (\ +[^\[\]]*)?\]"; %token link "\[( [^\[\ \]]* ) (\ +[^\[\]]*)?\]"; %token xmarkup "\<[^\>]*\>"; %token comment "^##.*"; /* %token text "([^\ \t\n\r\[\{\}\|\*\\\-_!#'] | _[^_\n\r] | \{[^\{\n\r] | \}[^\}\n\r] | '[^'\n\r] | \[\[ | \\[^\\\n\r] | \-{1,3}[^\-\n\r]?) ([^ \n\r\[\{\}\|\\\-_'] | _[^_\n\r] | \{[^\{\n\r] | \}[^\}\n\r] | '[^'\n\r] | \[\[ | \\[^\\\n\r] | \-{1,3}[^\-\n\r]? | \|[^\|\ \t])*"; */ %token text "([^\ \t\n\r\[\{\}\|\*\\\-\^\,_#'`=] | \,[^\,] | _[^_] | \{[^\{] | \}[^\}] | '[^'] | \[\[ | \\[^\\] | \-{1,3}[^\-\n\r]) ([^ \n\r\[\{\}\|\\\-\^\,_'`=] | \,[^\,] | _[^_] | \{[^\{] | \}[^\}] | '[^'] | \[\[ | \\[^\\] | \-{1,3}[^\-\n\r] | \|[^\|\ \t])*"; %right softbreak "\r(\n?) | \n"; %right break "\\\\"; %right hardbreak "(\r(\n?) | \n) (\r(\n?) | \n)+"; /* lists */ %token bulleted1item "^\ \*"; %token bulleted2item "^\ \ \*"; %token bulleted3item "^\ \ \ \*"; %token numbered1item "^\ 1\."; %token numbered2item "^\ \ 1\."; %token numbered3item "^\ \ \ 1\."; %token lettered1item "^\ a\."; %token lettered2item "^\ \ a\."; %token lettered3item "^\ \ \ a\."; %token roman1item "^\ i\."; %token roman2item "^\ \ i\."; %token roman3item "^\ \ \ i\."; %token plain1item "^\ "; %token plain2item "^\ \ "; %token plain3item "^\ \ \ "; %ignore "[\ \t]+"; %start document; %% document : paragraphs sections | sections | paragraphs ; sections : sections1 | sections2 | sections3 | sections4 | sections5 ; sections1 : section1 | sections1 section1 ; section1 : title1 sections2 | title1 paragraphs | title1 paragraphs sections2 | title1 ; sections2 : section2 | sections2 section2 ; section2 : title2 paragraphs | title2 paragraphs sections3 | title2 sections3 | title2 ; sections3 : section3 | sections3 section3 ; section3 : title3 paragraphs | title3 paragraphs sections4 | title3 sections4 | title3 ; sections4 : section4 | sections4 section4 ; section4 : title4 paragraphs | title4 paragraphs sections5 | title4 sections5 | title4 ; sections5 : section5 | sections5 section5 ; section5 : title5 paragraphs | title5 ; title1 : htitle1 textsequence htitle1 softbreak | htitle1 textsequence htitle1 hardbreak ; title2 : htitle2 textsequence htitle2 softbreak | htitle2 textsequence htitle2 hardbreak ; title3 : htitle3 textsequence htitle3 softbreak | htitle3 textsequence htitle3 hardbreak ; title4 : htitle4 textsequence htitle4 softbreak | htitle4 textsequence htitle4 hardbreak ; title5 : htitle5 textsequence htitle5 softbreak | htitle5 textsequence htitle5 hardbreak ; paragraphs : paragraphs paragraph hardbreak | paragraphs paragraph | paragraph hardbreak | paragraph ; paragraph : alist1 | textsequence | rulen | rulen softbreak | plainNitem source %prec softbreak | plainNitem source softbreak | source %prec softbreak | source softbreak | comment softbreak | table | plainNitem table ; rulen : rule4 | rule5 | rule6 | rule7 | rule8 | rule9 | rule10 | rule0 ; alist1 : bulletedlist1 | letteredlist1 | romanlist1 | numberedlist1 | plainlist1 ; alist2 : bulletedlist2 | letteredlist2 | romanlist2 | numberedlist2 | plainlist2 ; alist3 : bulletedlist3 | letteredlist3 | romanlist3 | numberedlist3 | plainlist3 ; /* bulleted list */ bulletedlist1 : bulletedlist1 bulletedlistitem1 | bulletedlistitem1 | bulletedlist1 alist2 | alist2 ; bulletedlist2 : bulletedlist2 bulletedlistitem2 | bulletedlistitem2 | bulletedlist2 alist3 | alist3 ; bulletedlist3 : bulletedlist3 bulletedlistitem3 | bulletedlistitem3 ; bulletedlistitem1 : bulleted1item textsequence ; bulletedlistitem2 : bulleted2item textsequence ; bulletedlistitem3 : bulleted3item textsequence ; /* lettered list */ letteredlist1 : letteredlist1 letteredlistitem1 | letteredlistitem1 | letteredlist1 alist2 | alist2 ; letteredlist2 : letteredlist2 letteredlistitem2 | letteredlistitem2 | letteredlist2 alist3 | alist3 ; letteredlist3 : letteredlist3 letteredlistitem3 | letteredlistitem3 ; letteredlistitem1 : lettered1item textsequence ; letteredlistitem2 : lettered2item textsequence ; letteredlistitem3 : lettered3item textsequence ; /* roman list */ romanlist1 : romanlist1 romanlistitem1 | romanlistitem1 | romanlist1 alist2 | alist2 ; romanlist2 : romanlist2 romanlistitem2 | romanlistitem2 | romanlist2 alist3 | alist3 ; romanlist3 : romanlist3 romanlistitem3 | romanlistitem3 ; romanlistitem1 : roman1item textsequence ; romanlistitem2 : roman2item textsequence ; romanlistitem3 : roman3item textsequence ; /* numbered list */ numberedlist1 : numberedlist1 numberedlistitem1 | numberedlistitem1 | numberedlist1 alist2 | alist2 ; numberedlist2 : numberedlist2 numberedlistitem2 | numberedlistitem2 | numberedlist2 alist3 | alist3 ; numberedlist3 : numberedlist3 numberedlistitem3 | numberedlistitem3 ; numberedlistitem1 : numbered1item textsequence ; numberedlistitem2 : numbered2item textsequence ; numberedlistitem3 : numbered3item textsequence ; /* plain list */ plainlist1 : plainlistitem1 plainlist1 | plainlistitem1 | plainlist1 alist2 | alist2 ; plainlist2 : plainlist2 plainlistitem2 | plainlistitem2 | plainlist2 alist3 | alist3 ; plainlist3 : plainlist3 plainlistitem3 | plainlistitem3 ; plainlistitem1 : plain1item textsequence ; plainlistitem2 : plain2item textsequence ; plainlistitem3 : plain3item textsequence ; plainNitem : plain1item | plain2item | plain3item ; /* table */ table : tablerows ; tablerows : tablerow softbreak tablerows | tablerow softbreak | tablerow hardbreak ; tablerow : tablecolumns tablecolumnitem ; tablecolumns : tablecolumns tablecolumn | tablecolumn ; tablecolumn : tablecolumnitems textblock | tablecolumnitems xmarkup textblock ; tablecolumnitems : tablecolumnitem tablecolumnitems | tablecolumnitem ; textsequence : textsequence textblock softbreak | textsequence textblock | textblock softbreak | textblock | textsequence textblock break | textblock break ; /* isequence : isequence iblock softbreak | isequence iblock | iblock softbreak | iblock | isequence iblock break | iblock break ; */ textblock : link | anchor | strongblock | emblock | ulblock | codeblock | supblock | subblock | xmarkup | text | softbreak ; /* iblock : indent textblock ; */ emblock : emitem text emitem ; ulblock : ulitem text ulitem ; strongblock : strongitem text strongitem ; supblock : supitem text supitem ; subblock : subitem text subitem ; codeblock : typewriteritem text typewriteritem ;