new checkpoint
authoradam <adam@megacz.com>
Mon, 2 Jan 2006 02:07:25 +0000 (21:07 -0500)
committeradam <adam@megacz.com>
Mon, 2 Jan 2006 02:07:25 +0000 (21:07 -0500)
darcs-hash:20060102020725-5007d-e82a2a603462ad169529165a69a5b32fcd964891.gz

src/edu/berkeley/sbp/misc/MetaGrammar.java
tests/tibdoc.g

index b2db78e..53c194d 100644 (file)
@@ -44,8 +44,8 @@ public class MetaGrammar extends StringWalker {
         startSymbol = str;
         nt = new HashMap<String,Union>();
         dropAll = new HashSet<Element>();
-        dropAll.add(leftBrace);
-        dropAll.add(rightBrace);
+        dropAll.add(leftBrace());
+        dropAll.add(rightBrace());
         nt.put(str, g);
         return ret;
     }
index df52b10..918e80c 100644 (file)
@@ -1,10 +1,14 @@
+// indentation styling...
+// literal blocks [[need to ignore bracing]] double-colon style?
+// definition -- by prior line indentation, like headings in the original structured text
+// tables
+// dropcap
+// output formats: latex, contex, ps, pdf, html, man, txt, rfc
 
 // URGENT: why does swapping [a-zA-Z0-9] for alphanum in "item" cause severe breakage?
 // URGENT: why does enabling "url" cause severe breakage? (probably same cause)
 //   ... something to do with unit productions
 
-
-
 // output formats: latex, contex, ps, pdf, html, man, txt, rfc
 // bullet list
 // numbered list
@@ -35,13 +39,21 @@ s                 ::= {Doc} => top
 Doc               ::= Header   Body                       /ws => doc
 Header            ::= "header" { kv */ ws }               /ws => header
 Body              ::= Section*/ws                             => body
-Section           ::= SectionHeader ({text}*/ws)          /ws => section
+Section           ::= SectionHeader Paragraph*/ws         /ws => section
 SectionHeader     ::= "==" SectionHeaderBody "=="
 SectionHeaderBody ::=  "=" SectionHeaderBody "="
                     >      ws text ws
 
 kv         ::= word "=" text /ws => kv1
 
+num !::= [0-9]++
+Paragraph  ::= { "\"\"" ws text }        => "blockquote"
+             > { "*" " " ws text }       => "ul"
+             > { "#" " " ws text }       => "ol"
+             > { num " " ws text }       => "ol"
+             > { "---" "-"* }            => "hr"
+             > { text }                  => "p"
+
 text       ::= item */ ws
 pre        ::= "[verbatim]" { [~]+ } /ws => "verbatim"   // FIXME doesn't work
 item       ::= pre