-
Notifications
You must be signed in to change notification settings - Fork 3
joefutrelle/rmutt
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Hello, welcome to rmutt! NEWS A port of rmutt that includes a Javascript API has been developed by rstuven, called rmutt.js: http://github.com/rstuven/rmutt.js INTRODUCTION "rmutt" is a utility for generating random text from context-free grammars (a.k.a. recursive transition networks). It's modeled after Andrew C. Bulhak's late, great "dada engine" which he used to write the hilarious Postmodern Thesis Generator. For more information and complete documentation see http://github.com/joefutrelle/rmutt VERSION 2.7 CHANGE HISTORY 2.7 * new syntax: now not just literals are allowed on the lhs of mappings. regexes are too, and the mapping will "fire" if the regex matches. (e.g., foo: "814" > /1/ % "contains 1";) 2.6 * now requires libgmp * -i now accepts aribrary-length integers * added -I option for reading iteration number from a file 2.5.1 * added xml utility example, replacing old xml.rm which was renamed spew_xml.rm * added JCR system view example 2.5 * build requires bison 1.5 or greater * major syntax changes: ** "|" readmitted as a synonym for "," to separate choices ** positional arguments _1, _2, ... _nnn now supported as follows: *** define a rule as rule_name[arg1,arg2,...,argn]: body; *** call a rule as rule_name[exp,exp,...,exp] *** e.g., (dash[a,b]: a "-" b) "Edward " dash["Bulwer","Lytton"] *** inside this rule a is synonymous with _1 and b with _2 ** clarified scoping rules: *** LOCAL (no qualifier): modifies local grammar (formerly LEXICAL) *** NON_LOCAL ("^"): modifies nearest ancestor binding *** GLOBAL ("$"): modifies top-level binding (which still may be shadowed) (formerly DYNAMIC) * fixed bug where files #included more than once were parsed more than once * fixed bug where default packages of recursively-included files could be wrong 2.3.0 * major syntax changes ("()" instead of "[]", "," instead of "|", no more "&") * added ability to use \n and \t in regex replacements * added PREFIX variable to Makefile: ** will install binary to $PREFIX/bin and included .rm files to $PREFIX/share/rmutt ** will search for #includes in $PREFIX/share/rmutt * fixed lexical scoping issues with packages and #includes: ** "package" statements in #included files no longer affect including file ** line number error reporting is now unaffected by #includes * if a rule is not found, will now issue a warning, output the label, and continue * fixed bug affecting scope of package-qualified terms 2.2.1 * fixed memory management bug in support for lexical scope 2.2 * added scope qualifiers for nested assignments and rules 2.1 * added -d flag for backward compatibility with 1.x dynamic rule scope 2.0 * embedded rules and assignments now have lexical scope, rather than dynamic scope. 1.6 * #includes added 1.5 * complex mappings added. a literal can now be mapped to an expression, not just another literal. 1.4 * -i feature for enumerating all possible strings 1.3 * Added the following iteration shorthands: - ? => {0,1} - * => {0,5} - + => {1,5} * Fixed bug where iteration code was using rand() instead of random() 1.2.2 * Added random seed option. * Added line numbers in error reporting. 1.2.1 1.2 * Changed stack size limit behavior from exiting to halting expansion at the current depth. * Added "&" choice qualifier to multiply the probability that a choice will be selected. * Changed from rand() to random() for better random number generation. * Added test script and test target to Makefile 1.1 * Made it so that when rmutt can't find a rule in the current package, it searches for a rule with the same name in the default package. * Fixed memory leak in parser. * Added a stack size limit to prevent crashes when grammars have infinite or just very deep grammars 1.0 * Initial revision
About
Rmutt Turing-complete random text generator
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published