public RulePattern rulePattern; //Whether the rule is an OR rule, meaning that it only has subrules within it and nothing else public RuleDescriptor() { name = ""; elements = new List <IGrammar>(); rPattern = Pattern.NONE; rulePattern = RulePattern.NONE; }
public RuleDescriptor(string name, List <IGrammar> elements, Pattern rPattern, RulePattern rulePattern) { this.name = name; this.elements = elements; this.rPattern = rPattern; this.rulePattern = rulePattern; }
public TokenDescriptor(String type, string pattern) { this.type = type; this.pattern = pattern; this.rPattern = Pattern.NONE; this.rulePattern = RulePattern.NONE; }
} //Unused for token public Token(String type, String val) { this.type = type; this.val = val; rPattern = Pattern.NONE; this.rulePattern = RulePattern.NONE; }
public RulePattern rulePattern; //Whether the rule is an OR rule, meaning that it only has subrules within it and nothing else public Rule() { this.name = ""; this.elements = new List <IGrammar>(); this.rPattern = Pattern.NONE; this.rulePattern = RulePattern.NONE; }
/// <summary> /// Comprueba una regla a partir de un patrón de caracteres /// </summary> private void CheckRulePattern(RulePattern rule, TokenCollection tokens, ref bool found) { if (CharSeparator.CheckPatternStart(rule.PatternStart)) { // Añade el token de un patrón tokens.Add(GetToken(rule, CharSeparator.GetCharsPattern(rule.PatternStart, rule.PatternContent), false)); // Indica que se ha grabado found = true; } }
protected PatternMatchResult TestRule(List <Token> tokens, int from = 0) { var matchResult = RulePattern.GetMatch(tokens, from); if (matchResult.Start == from) { return(matchResult); } return(PatternMatchResult.Empty); }
public int Reduce(RulePattern rule) { Stack <Node> children = new Stack <Node>(); for (int i = 0; i < rule.BodyLength; i++) { this.Content.Pop(); children.Push((Node)this.Content.Pop()); } int stateIndex = (int)this.Content.Peek(); this.Content.Push(new NonTerminalNode(children.First().Location, rule.NonTerminal, children)); return(stateIndex); }
private Pattern NewPattern(string name, PatternConfig settings, string engineName) { var p = new Object(); switch (name) { case "Spring": { p = new SpringPattern(logger, settings, engineName); break; } case "Streak": { p = new StreakPattern(logger, settings, engineName); break; } case "TrendShift": { p = new TrendShiftPattern(logger, settings, engineName); break; } case "TrendIncline": { p = new TrendInclinePattern(logger, settings, engineName); break; } case "RulePattern": { p = new RulePattern(logger, settings, engineName); break; } } return((Pattern)p); }
public Rule(string name, List <IGrammar> elements, RulePattern rulePattern) { this.name = name; this.elements = elements; this.rulePattern = rulePattern; }
public static ReduceTable From(ReduceTableDefinition definition, RuleDefinition[] rules) => new ReduceTable(definition.ToDictionary( reduce => StatePattern.From(reduce), reduce => RulePattern.From(reduce, rules)));