322 Commits

Author SHA1 Message Date
d8dd64d860 Add NFA class
Start converting units to NFAs
2021-05-13 00:01:12 -04:00
54cefda186 Use Parser 2021-05-11 16:52:28 -04:00
201a38fb51 Add Parser specs 2021-05-11 15:29:40 -04:00
33f9d01883 Rename start/end to min/max for CharacterRangeUnit 2021-05-11 15:28:45 -04:00
9b09625c8a Fix parsing - at beginning of negated character class 2021-05-11 14:57:16 -04:00
6119d860bc Fix character class parsing into an AlternatesUnit 2021-05-11 14:57:01 -04:00
611ebeeddd Fix max multiplicity count parsing 2021-05-11 11:37:46 -04:00
449eec4982 Fix multiplicity count parsing 2021-05-11 11:33:10 -04:00
8cd648fc8f Create spec file for Parser 2021-05-07 16:58:38 -04:00
885ef6c151 Rename Regex::Unit -> Regex::Parser 2021-05-07 16:57:05 -04:00
60adffbbab Add rspec 2021-05-07 15:16:01 -04:00
b8c01ca1d1 Move Unit stuff from Imbecile::Regex to Imbecile::Regex::Unit 2021-05-07 15:10:51 -04:00
b04ff56308 Add Regex class 2021-05-02 15:22:45 -04:00
ca1d2d1e5c Fix class name determination from output file name 2021-05-01 17:01:15 -04:00
13403405b0 Add Error class to handle grammar loading errors 2021-05-01 16:54:24 -04:00
07dd68e367 Write output file from ERB template 2021-05-01 16:44:01 -04:00
c1666a1e74 Require output file on command line 2021-05-01 14:52:16 -04:00
768a0ef17f Extract class name from grammar file 2021-05-01 14:34:00 -04:00
9e865d1982 Throw error on unexpected grammar input line 2021-05-01 09:40:22 -04:00
9884047090 Skip blank lines 2021-05-01 09:39:19 -04:00
04393dcc51 Check for duplicate token names; skip comment lines 2021-05-01 09:38:08 -04:00
7f27b3fd6f Exit with CLI exit code 2021-05-01 09:34:38 -04:00
37ad87d602 Rename GrammarParser -> Grammar 2021-05-01 09:33:35 -04:00
23b7782a5d Begin parsing grammar 2021-05-01 09:31:12 -04:00
0cc4516c0e Add GrammarParser class to parse input file 2021-05-01 08:22:14 -04:00
75a1049040 Parse command-line options 2021-05-01 08:16:09 -04:00
a9ff93dda4 Add script to test run 2021-05-01 08:16:01 -04:00
d879a93d09 Add bin/imbecile and Imbecile::CLI module 2021-04-29 23:26:52 -04:00
ee27c5e9b1 Add Gemfile.lock 2021-04-29 23:26:37 -04:00
989e5f47de Edit some gemspec fields 2021-04-29 23:26:29 -04:00
04e17cde30 Add "bundle gem"-generated files 2021-04-29 23:22:23 -04:00
bc217e7ddb Start on ruby branch 2021-04-29 23:18:22 -04:00
Josh Holtrop
064bb94108 token data protected again by default now 2010-06-01 11:53:42 -04:00
Josh Holtrop
b689923475 user data in "public" section by default now; storing list of tokens in the generated parser for use later by the rules 2010-05-21 11:05:26 -04:00
Josh Holtrop
dfbd319329 fixed build test sscanf() arg order 2010-05-21 10:48:46 -04:00
Josh Holtrop
9055f591f9 execute test after building it 2010-05-21 10:27:27 -04:00
Josh Holtrop
3cdaa2e338 bugfix -- create Matches with longest_match_ovector not the temporary ovector 2010-05-21 10:27:16 -04:00
Josh Holtrop
3a3dc4074b added Token::m_type/setType()/getType(); changed Token::process() to accept a const reference to a Matches; updated build test 2010-05-21 10:22:37 -04:00
Josh Holtrop
5219989f2a added TokenDefinition::getClassName() 2010-05-21 10:01:31 -04:00
Josh Holtrop
3f3dd81e67 added TokenDefinition::getIdentifier() and replacement buildToken 2010-05-21 09:46:17 -04:00
Josh Holtrop
c6cc8e57d1 added token classes and token class process() methods to Imbecile-generated parser 2010-05-20 17:08:03 -04:00
Josh Holtrop
449a510671 re-worked defines in generated parser; writing TK_ #define's for token types now 2010-05-20 15:59:06 -04:00
Josh Holtrop
4ec500a2fb added token_data and token_code replacements for global Token information; added debug message for missing replacements 2010-05-20 15:27:08 -04:00
Josh Holtrop
62fd96ad9b updated replacement system 2010-05-19 16:50:36 -04:00
Josh Holtrop
ecfa1730f5 created replacement system for templates ("{%word%}" syntax) 2010-05-19 16:14:04 -04:00
Josh Holtrop
55b1e1494a renamed MatchSet to Matches 2010-05-19 14:30:15 -04:00
Josh Holtrop
b100c035a0 MatchSet updates 2010-05-19 14:06:02 -04:00
Josh Holtrop
3a0a7e494d added MatchSet class; Token::process() 2010-05-19 13:43:06 -04:00
Josh Holtrop
c0e88f5c6f changed token list to a STL list instead of a vector 2010-05-19 12:20:50 -04:00
Josh Holtrop
762ff3d561 added data gathering; changed the way gathering was done (now ${...$} and %{...%}); added continue_line in parseInputFile() 2010-05-19 12:00:06 -04:00