internal bool AddLexCategory( string name, string verb, LexSpan spn ) { if (lexCategories.ContainsKey( name )) return false; else { LexCategory cls = new LexCategory( name, verb, spn ); lexCategories.Add( name, cls ); cls.ParseRE( this ); return true; } }
internal static RuleDesc MkDummyRuleDesc( LexCategory cat, AAST aast ) { RuleDesc result = new RuleDesc(); result.pSpan = null; result.aSpan = aast.AtStart; result.isBarAction = false; result.isPredDummyRule = true; result.pattern = String.Format( CultureInfo.InvariantCulture, "{{{0}}}", cat.Name ); result.list = new List<StartState>(); result.ParseRE( aast ); result.list.Add( aast.StartStateValue( cat.PredDummyName ) ); return result; }