commit 154fb25ee8b26b17b256ecfcb14e418bcff5702e Author: Ian Gulliver Date: Tue May 20 10:56:20 2014 -0700 Starting idea of what a grammar should look like. diff --git a/grammars/mediawiki.js b/grammars/mediawiki.js new file mode 100644 index 0000000..abb5109 --- /dev/null +++ b/grammars/mediawiki.js @@ -0,0 +1,18 @@ +var mediawiki = { + 'b': [rr.Literal("'''"), rr.Ref('wikichunk'), rr.Literal("'''")], + 'del': [rr.Literal(''), rr.Ref('wikichunk'), rr.Literal('')], + 'h2': [rr.StartOfLine(), rr.Literal('== '), rr.SingleLineText(), rr.Literal(' =='), rr.EndOfLine()], + 'h3': [rr.StartOfLine(), rr.Literal('=== '), rr.SingleLineText(), rr.Literal(' ==='), rr.EndOfLine()], + 'h4': [rr.StartOfLine(), rr.Literal('==== '), rr.SingleLineText(), rr.Literal(' ===='), rr.EndOfLine()], + 'h5': [rr.StartOfLine(), rr.Literal('===== '), rr.SingleLineText(), rr.Literal(' ====='), rr.EndOfLine()], + 'h6': [rr.StartOfLine(), rr.Literal('====== '), rr.SingleLineText(), rr.Literal(' ======'), rr.EndOfLine()], + 'hr': [rr.StartOfLine(), rr.Literal('----'), rr.EndOfLine()], + 'i': [rr.Literal("''"), rr.Ref('wikichunk'), rr.Literal("''")], + 'nowiki': [rr.Literal(''), rr.MultiLineText(), rr.Literal('')], + 'nowikiword': [rr.WordText(), rr.Literal('')], + 'wikichunk': [rr.Or( + 'i', + rr.MultiLineText(), + )], + 'wikidoc': [rr.ZeroOrMore('wikichunk')], +};