Commit Graph

  • f38a7456e9 Add DFA#nil_transition_states Josh Holtrop 2021-05-20 17:08:34 -04:00
  • c77c81bf25 Mark regex NFA end state as accepting the token Josh Holtrop 2021-05-18 16:34:26 -04:00
  • 7196a0605a Add DFA class Josh Holtrop 2021-05-18 16:31:16 -04:00
  • 24054461a2 Merge Regex::Parser into Regex, move Unit to its own file Josh Holtrop 2021-05-18 16:14:42 -04:00
  • 89a5976064 Make Regex::Parser build a NFA after parsing Josh Holtrop 2021-05-18 16:07:39 -04:00
  • d3df67be1e Update rake Josh Holtrop 2021-05-18 15:55:19 -04:00
  • 791340b292 Build NFA for each token pattern Josh Holtrop 2021-05-17 22:57:18 -04:00
  • cf8718b69c Allow token definition with no pattern Josh Holtrop 2021-05-17 22:40:23 -04:00
  • 39f164a7db Parse . in a regex Josh Holtrop 2021-05-17 17:20:56 -04:00
  • 70b3e56de2 Store all characters as ranges; add CharacterClassUnit#to_nfa Josh Holtrop 2021-05-14 13:52:03 -04:00
  • 2e8e72a1e8 Add CharacterClassUnit and use it instead of AlternatesUnit Josh Holtrop 2021-05-14 12:32:53 -04:00
  • ea27baa630 Add #to_nfa for other regex unit types Josh Holtrop 2021-05-13 15:57:09 -04:00
  • d8dd64d860 Add NFA class Josh Holtrop 2021-05-13 00:01:12 -04:00
  • 54cefda186 Use Parser Josh Holtrop 2021-05-11 16:52:28 -04:00
  • 201a38fb51 Add Parser specs Josh Holtrop 2021-05-11 15:29:40 -04:00
  • 33f9d01883 Rename start/end to min/max for CharacterRangeUnit Josh Holtrop 2021-05-11 15:28:45 -04:00
  • 9b09625c8a Fix parsing - at beginning of negated character class Josh Holtrop 2021-05-11 14:57:16 -04:00
  • 6119d860bc Fix character class parsing into an AlternatesUnit Josh Holtrop 2021-05-11 14:57:01 -04:00
  • 611ebeeddd Fix max multiplicity count parsing Josh Holtrop 2021-05-11 11:37:46 -04:00
  • 449eec4982 Fix multiplicity count parsing Josh Holtrop 2021-05-11 11:33:10 -04:00
  • 8cd648fc8f Create spec file for Parser Josh Holtrop 2021-05-07 16:58:38 -04:00
  • 885ef6c151 Rename Regex::Unit -> Regex::Parser Josh Holtrop 2021-05-07 16:57:05 -04:00
  • 60adffbbab Add rspec Josh Holtrop 2021-05-07 15:16:01 -04:00
  • b8c01ca1d1 Move Unit stuff from Imbecile::Regex to Imbecile::Regex::Unit Josh Holtrop 2021-05-07 15:10:51 -04:00
  • b04ff56308 Add Regex class Josh Holtrop 2021-05-02 15:22:45 -04:00
  • ca1d2d1e5c Fix class name determination from output file name Josh Holtrop 2021-05-01 17:01:15 -04:00
  • 13403405b0 Add Error class to handle grammar loading errors Josh Holtrop 2021-05-01 16:54:24 -04:00
  • 07dd68e367 Write output file from ERB template Josh Holtrop 2021-05-01 16:44:01 -04:00
  • c1666a1e74 Require output file on command line Josh Holtrop 2021-05-01 14:52:16 -04:00
  • 768a0ef17f Extract class name from grammar file Josh Holtrop 2021-05-01 14:34:00 -04:00
  • 9e865d1982 Throw error on unexpected grammar input line Josh Holtrop 2021-05-01 09:40:22 -04:00
  • 9884047090 Skip blank lines Josh Holtrop 2021-05-01 09:39:19 -04:00
  • 04393dcc51 Check for duplicate token names; skip comment lines Josh Holtrop 2021-05-01 09:38:08 -04:00
  • 7f27b3fd6f Exit with CLI exit code Josh Holtrop 2021-05-01 09:34:38 -04:00
  • 37ad87d602 Rename GrammarParser -> Grammar Josh Holtrop 2021-05-01 09:33:35 -04:00
  • 23b7782a5d Begin parsing grammar Josh Holtrop 2021-05-01 09:31:12 -04:00
  • 0cc4516c0e Add GrammarParser class to parse input file Josh Holtrop 2021-05-01 08:22:14 -04:00
  • 75a1049040 Parse command-line options Josh Holtrop 2021-05-01 08:16:09 -04:00
  • a9ff93dda4 Add script to test run Josh Holtrop 2021-05-01 08:16:01 -04:00
  • d879a93d09 Add bin/imbecile and Imbecile::CLI module Josh Holtrop 2021-04-29 23:26:52 -04:00
  • ee27c5e9b1 Add Gemfile.lock Josh Holtrop 2021-04-29 23:26:37 -04:00
  • 989e5f47de Edit some gemspec fields Josh Holtrop 2021-04-29 23:26:29 -04:00
  • 04e17cde30 Add "bundle gem"-generated files Josh Holtrop 2021-04-29 23:22:23 -04:00
  • bc217e7ddb Start on ruby branch Josh Holtrop 2021-04-29 23:18:22 -04:00
  • 064bb94108 token data protected again by default now Josh Holtrop 2010-06-01 11:53:42 -04:00
  • b689923475 user data in "public" section by default now; storing list of tokens in the generated parser for use later by the rules Josh Holtrop 2010-05-21 11:05:26 -04:00
  • dfbd319329 fixed build test sscanf() arg order Josh Holtrop 2010-05-21 10:48:46 -04:00
  • 9055f591f9 execute test after building it Josh Holtrop 2010-05-21 10:27:27 -04:00
  • 3cdaa2e338 bugfix -- create Matches with longest_match_ovector not the temporary ovector Josh Holtrop 2010-05-21 10:27:16 -04:00
  • 3a3dc4074b added Token::m_type/setType()/getType(); changed Token::process() to accept a const reference to a Matches; updated build test Josh Holtrop 2010-05-21 10:22:37 -04:00
  • 5219989f2a added TokenDefinition::getClassName() Josh Holtrop 2010-05-21 10:01:31 -04:00
  • 3f3dd81e67 added TokenDefinition::getIdentifier() and replacement buildToken Josh Holtrop 2010-05-21 09:46:17 -04:00
  • c6cc8e57d1 added token classes and token class process() methods to Imbecile-generated parser Josh Holtrop 2010-05-20 17:08:03 -04:00
  • 449a510671 re-worked defines in generated parser; writing TK_ #define's for token types now Josh Holtrop 2010-05-20 15:59:06 -04:00
  • 4ec500a2fb added token_data and token_code replacements for global Token information; added debug message for missing replacements Josh Holtrop 2010-05-20 15:27:08 -04:00
  • 62fd96ad9b updated replacement system Josh Holtrop 2010-05-19 16:50:36 -04:00
  • ecfa1730f5 created replacement system for templates ("{%word%}" syntax) Josh Holtrop 2010-05-19 16:14:04 -04:00
  • 55b1e1494a renamed MatchSet to Matches Josh Holtrop 2010-05-19 14:30:15 -04:00
  • b100c035a0 MatchSet updates Josh Holtrop 2010-05-19 14:06:02 -04:00
  • 3a0a7e494d added MatchSet class; Token::process() Josh Holtrop 2010-05-19 13:43:06 -04:00
  • c0e88f5c6f changed token list to a STL list instead of a vector Josh Holtrop 2010-05-19 12:20:50 -04:00
  • 762ff3d561 added data gathering; changed the way gathering was done (now ${...$} and %{...%}); added continue_line in parseInputFile() Josh Holtrop 2010-05-19 12:00:06 -04:00
  • b90b83ab0f renamed "ignored" flag to "process" in token definitions Josh Holtrop 2010-05-18 14:22:11 -04:00
  • 953796ec23 refactored into Parser::buildTokenList() Josh Holtrop 2010-05-17 16:26:42 -04:00
  • 89a414ff93 added "ignored" flag in TokenDefinition, parsing token flags now Josh Holtrop 2010-05-17 15:32:27 -04:00
  • 593c0d6cb6 including refptr in compiler include path; added split() and trim() in TokenDefinition.cc Josh Holtrop 2010-05-17 15:24:35 -04:00
  • 9d6ede6106 added refptr into tmpl/parser.h, added Node and Token classes to be generated Josh Holtrop 2010-05-17 15:13:22 -04:00
  • 2d563b9ea4 updated build test Makefile Josh Holtrop 2010-05-15 00:51:43 -04:00
  • 96010ea9ae lexer working with pcre, not building any objects for handling tokens yet Josh Holtrop 2010-05-15 00:43:55 -04:00
  • 25888fe55a building tmpl.h before dependency files Josh Holtrop 2010-05-14 22:30:48 -04:00
  • edeb857c77 added I_TOKENLIST definition; build test now compiling Josh Holtrop 2010-05-11 16:33:22 -04:00
  • b27a900b96 Parser::write() returning status; main() catching errors from Parser::parseInputFile() and Parser::write() Josh Holtrop 2010-05-11 15:14:56 -04:00
  • 1dcde61d10 tmpl updates Josh Holtrop 2010-05-11 13:02:51 -04:00
  • 90d313721f created "tests" subdirectory infrastructure Josh Holtrop 2010-05-11 13:02:35 -04:00
  • 2aefd8d4ec moved testinput.I to tests/build/build_test.I Josh Holtrop 2010-05-11 12:13:21 -04:00
  • 5f8a29d3fa rewrote Parser::write() to begin using tmpl files; added writeDefine() Josh Holtrop 2010-05-11 12:10:49 -04:00
  • 39c5ebb686 include pcre.h in tmpl/parser.cc Josh Holtrop 2010-05-11 12:10:20 -04:00
  • 15c5751632 restructured Parser::parseInputFile() a bit and added code-gathering functionality Josh Holtrop 2010-05-11 11:04:23 -04:00
  • ec8af293e1 explicitly listed tmpl.h as a dependency of "all" to avoid .dep generation problems Josh Holtrop 2010-05-11 10:40:31 -04:00
  • 07717ec5ba added tmpl.{cc,h} build rules Josh Holtrop 2010-05-10 16:56:05 -04:00
  • 3a8d9ca55d token matching loop storing ovector for longest match so the longest-matching token does not need to be re-matched to obtain subpattern match strings Josh Holtrop 2010-05-07 15:24:50 -04:00
  • 1113cdb7d2 parse() calling pcre_exec() to try to match tokens Josh Holtrop 2010-05-07 14:37:15 -04:00
  • 67c051c866 expanded parse() to compile all tokens, ready to match them Josh Holtrop 2010-05-07 13:07:21 -04:00
  • 8cc4edfca3 adding NUL byte to file read in parser Josh Holtrop 2010-05-06 15:44:40 -04:00
  • 44bf780a42 added read_istream() in tmpl/parser.cc Josh Holtrop 2010-05-05 15:13:57 -04:00
  • bfc4fc59c7 generated parse() returns bool status Josh Holtrop 2010-05-04 16:12:55 -04:00
  • 31c35a9335 updated c_escape(); added TokenDefinition::getCString() Josh Holtrop 2010-05-04 10:57:17 -04:00
  • 7756bd696b added initial tmpl files Josh Holtrop 2010-05-03 16:22:55 -04:00
  • beab28d7b6 changed dependency files into hidden files Josh Holtrop 2010-05-03 15:43:20 -04:00
  • 21715a03c7 added c_escape() in TokenDefinition module Josh Holtrop 2010-05-03 14:47:58 -04:00
  • c1070fb021 TokenDefinition storing name and definition, not pcre RE Josh Holtrop 2010-05-03 13:59:03 -04:00
  • 876cc5da78 fixed dependency files in Makefile Josh Holtrop 2010-05-03 13:58:23 -04:00
  • 48efc1be97 doing a little more in Parser::write() Josh Holtrop 2010-04-30 13:04:11 -04:00
  • b7dab7f0a6 began expanding Parser::write() Josh Holtrop 2010-04-29 15:51:01 -04:00
  • 6d3a5403c3 reworked argument handling slightly, added --extension Josh Holtrop 2010-04-29 15:40:07 -04:00
  • 9720ea001f added --namespace argument Josh Holtrop 2010-04-29 15:14:21 -04:00
  • 2b23657a0c changed "outfile" parameter to be a base name, added "classname" parameter Josh Holtrop 2010-04-28 17:27:36 -04:00
  • bd45bfbab2 moved Parser::parseInputFile() into Parser.cc and cleaned it up a little Josh Holtrop 2010-04-27 14:32:26 -04:00
  • ffb1274a0d refactored into buildOutputFilename() Josh Holtrop 2010-04-27 13:59:02 -04:00
  • 076cd122b0 moved parse_input() to Parser::parseInputFile() Josh Holtrop 2010-04-27 13:52:21 -04:00