├── .gitignore ├── CHANGES ├── Gemfile ├── README.md ├── Rakefile ├── benchmark ├── seqpar.citrus ├── seqpar.gnuplot └── seqpar.rb ├── citrus.gemspec ├── doc ├── background.markdown ├── example.markdown ├── extras.markdown ├── index.markdown ├── license.markdown ├── links.markdown ├── syntax.markdown └── testing.markdown ├── extras ├── Citrus.tmbundle │ ├── Commands │ │ └── Stub Undeclared Rules.tmCommand │ ├── Preferences │ │ ├── Comments.tmPreferences │ │ └── Indent.tmPreferences │ ├── Snippets │ │ ├── grammar ___ end.tmSnippet │ │ └── rule ___ end.tmSnippet │ ├── Syntaxes │ │ └── Citrus Grammar.tmLanguage │ └── info.plist └── vim │ └── syntax │ └── citrus.vim ├── lib ├── citrus.rb └── citrus │ ├── core_ext.rb │ ├── file.rb │ ├── grammars.rb │ ├── grammars │ ├── calc.citrus │ ├── email.citrus │ ├── ipaddress.citrus │ ├── ipv4address.citrus │ ├── ipv6address.citrus │ └── uri.citrus │ └── version.rb └── test ├── _files ├── alias.citrus ├── file1.citrus ├── file2.citrus ├── file3.citrus ├── grammar1.citrus ├── grammar2.citrus ├── grammar3.citrus ├── rule1.citrus ├── rule2.citrus ├── rule3.citrus ├── rule4.citrus ├── rule5.citrus ├── rule6.citrus └── rule7.citrus ├── alias_test.rb ├── and_predicate_test.rb ├── but_predicate_test.rb ├── choice_test.rb ├── extension_test.rb ├── file_test.rb ├── grammar_test.rb ├── grammars ├── calc_test.rb ├── email_test.rb ├── ipaddress_test.rb ├── ipv4address_test.rb ├── ipv6address_test.rb └── uri_test.rb ├── helper.rb ├── input_test.rb ├── label_test.rb ├── match_test.rb ├── memoized_input_test.rb ├── multibyte_test.rb ├── not_predicate_test.rb ├── parse_error_test.rb ├── repeat_test.rb ├── sequence_test.rb ├── string_terminal_test.rb ├── super_test.rb └── terminal_test.rb /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.swp 3 | *.rbc 4 | api 5 | dist 6 | benchmark/*.dat 7 | Gemfile.lock -------------------------------------------------------------------------------- /CHANGES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/CHANGES -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/Gemfile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/README.md -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/Rakefile -------------------------------------------------------------------------------- /benchmark/seqpar.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/benchmark/seqpar.citrus -------------------------------------------------------------------------------- /benchmark/seqpar.gnuplot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/benchmark/seqpar.gnuplot -------------------------------------------------------------------------------- /benchmark/seqpar.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/benchmark/seqpar.rb -------------------------------------------------------------------------------- /citrus.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/citrus.gemspec -------------------------------------------------------------------------------- /doc/background.markdown: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/doc/background.markdown -------------------------------------------------------------------------------- /doc/example.markdown: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/doc/example.markdown -------------------------------------------------------------------------------- /doc/extras.markdown: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/doc/extras.markdown -------------------------------------------------------------------------------- /doc/index.markdown: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/doc/index.markdown -------------------------------------------------------------------------------- /doc/license.markdown: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/doc/license.markdown -------------------------------------------------------------------------------- /doc/links.markdown: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/doc/links.markdown -------------------------------------------------------------------------------- /doc/syntax.markdown: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/doc/syntax.markdown -------------------------------------------------------------------------------- /doc/testing.markdown: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/doc/testing.markdown -------------------------------------------------------------------------------- /extras/Citrus.tmbundle/Commands/Stub Undeclared Rules.tmCommand: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/extras/Citrus.tmbundle/Commands/Stub Undeclared Rules.tmCommand -------------------------------------------------------------------------------- /extras/Citrus.tmbundle/Preferences/Comments.tmPreferences: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/extras/Citrus.tmbundle/Preferences/Comments.tmPreferences -------------------------------------------------------------------------------- /extras/Citrus.tmbundle/Preferences/Indent.tmPreferences: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/extras/Citrus.tmbundle/Preferences/Indent.tmPreferences -------------------------------------------------------------------------------- /extras/Citrus.tmbundle/Snippets/grammar ___ end.tmSnippet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/extras/Citrus.tmbundle/Snippets/grammar ___ end.tmSnippet -------------------------------------------------------------------------------- /extras/Citrus.tmbundle/Snippets/rule ___ end.tmSnippet: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/extras/Citrus.tmbundle/Snippets/rule ___ end.tmSnippet -------------------------------------------------------------------------------- /extras/Citrus.tmbundle/Syntaxes/Citrus Grammar.tmLanguage: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/extras/Citrus.tmbundle/Syntaxes/Citrus Grammar.tmLanguage -------------------------------------------------------------------------------- /extras/Citrus.tmbundle/info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/extras/Citrus.tmbundle/info.plist -------------------------------------------------------------------------------- /extras/vim/syntax/citrus.vim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/extras/vim/syntax/citrus.vim -------------------------------------------------------------------------------- /lib/citrus.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/lib/citrus.rb -------------------------------------------------------------------------------- /lib/citrus/core_ext.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/lib/citrus/core_ext.rb -------------------------------------------------------------------------------- /lib/citrus/file.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/lib/citrus/file.rb -------------------------------------------------------------------------------- /lib/citrus/grammars.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/lib/citrus/grammars.rb -------------------------------------------------------------------------------- /lib/citrus/grammars/calc.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/lib/citrus/grammars/calc.citrus -------------------------------------------------------------------------------- /lib/citrus/grammars/email.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/lib/citrus/grammars/email.citrus -------------------------------------------------------------------------------- /lib/citrus/grammars/ipaddress.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/lib/citrus/grammars/ipaddress.citrus -------------------------------------------------------------------------------- /lib/citrus/grammars/ipv4address.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/lib/citrus/grammars/ipv4address.citrus -------------------------------------------------------------------------------- /lib/citrus/grammars/ipv6address.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/lib/citrus/grammars/ipv6address.citrus -------------------------------------------------------------------------------- /lib/citrus/grammars/uri.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/lib/citrus/grammars/uri.citrus -------------------------------------------------------------------------------- /lib/citrus/version.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/lib/citrus/version.rb -------------------------------------------------------------------------------- /test/_files/alias.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/_files/alias.citrus -------------------------------------------------------------------------------- /test/_files/file1.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/_files/file1.citrus -------------------------------------------------------------------------------- /test/_files/file2.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/_files/file2.citrus -------------------------------------------------------------------------------- /test/_files/file3.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/_files/file3.citrus -------------------------------------------------------------------------------- /test/_files/grammar1.citrus: -------------------------------------------------------------------------------- 1 | grammar Calc end 2 | -------------------------------------------------------------------------------- /test/_files/grammar2.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/_files/grammar2.citrus -------------------------------------------------------------------------------- /test/_files/grammar3.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/_files/grammar3.citrus -------------------------------------------------------------------------------- /test/_files/rule1.citrus: -------------------------------------------------------------------------------- 1 | rule int '' end 2 | -------------------------------------------------------------------------------- /test/_files/rule2.citrus: -------------------------------------------------------------------------------- 1 | rule int 2 | [0-9]+ 3 | end 4 | -------------------------------------------------------------------------------- /test/_files/rule3.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/_files/rule3.citrus -------------------------------------------------------------------------------- /test/_files/rule4.citrus: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/_files/rule4.citrus -------------------------------------------------------------------------------- /test/_files/rule5.citrus: -------------------------------------------------------------------------------- 1 | rule super '' end 2 | -------------------------------------------------------------------------------- /test/_files/rule6.citrus: -------------------------------------------------------------------------------- 1 | rule super end 2 | -------------------------------------------------------------------------------- /test/_files/rule7.citrus: -------------------------------------------------------------------------------- 1 | rule abc 2 | "abc" | super 3 | end 4 | -------------------------------------------------------------------------------- /test/alias_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/alias_test.rb -------------------------------------------------------------------------------- /test/and_predicate_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/and_predicate_test.rb -------------------------------------------------------------------------------- /test/but_predicate_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/but_predicate_test.rb -------------------------------------------------------------------------------- /test/choice_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/choice_test.rb -------------------------------------------------------------------------------- /test/extension_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/extension_test.rb -------------------------------------------------------------------------------- /test/file_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/file_test.rb -------------------------------------------------------------------------------- /test/grammar_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/grammar_test.rb -------------------------------------------------------------------------------- /test/grammars/calc_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/grammars/calc_test.rb -------------------------------------------------------------------------------- /test/grammars/email_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/grammars/email_test.rb -------------------------------------------------------------------------------- /test/grammars/ipaddress_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/grammars/ipaddress_test.rb -------------------------------------------------------------------------------- /test/grammars/ipv4address_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/grammars/ipv4address_test.rb -------------------------------------------------------------------------------- /test/grammars/ipv6address_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/grammars/ipv6address_test.rb -------------------------------------------------------------------------------- /test/grammars/uri_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/grammars/uri_test.rb -------------------------------------------------------------------------------- /test/helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/helper.rb -------------------------------------------------------------------------------- /test/input_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/input_test.rb -------------------------------------------------------------------------------- /test/label_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/label_test.rb -------------------------------------------------------------------------------- /test/match_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/match_test.rb -------------------------------------------------------------------------------- /test/memoized_input_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/memoized_input_test.rb -------------------------------------------------------------------------------- /test/multibyte_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/multibyte_test.rb -------------------------------------------------------------------------------- /test/not_predicate_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/not_predicate_test.rb -------------------------------------------------------------------------------- /test/parse_error_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/parse_error_test.rb -------------------------------------------------------------------------------- /test/repeat_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/repeat_test.rb -------------------------------------------------------------------------------- /test/sequence_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/sequence_test.rb -------------------------------------------------------------------------------- /test/string_terminal_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/string_terminal_test.rb -------------------------------------------------------------------------------- /test/super_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/super_test.rb -------------------------------------------------------------------------------- /test/terminal_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mjackson/citrus/HEAD/test/terminal_test.rb --------------------------------------------------------------------------------