/** Define a new predicate and get back its name for use in building * a semantic predicate reference to the syn pred. */ public virtual string DefineSyntacticPredicate( GrammarAST blockAST, string currentRuleName ) { if ( nameToSynpredASTMap == null ) { nameToSynpredASTMap = new List<KeyValuePair<string, GrammarAST>>(); } string predName = SynpredRulePrefix + ( nameToSynpredASTMap.Count + 1 ) + "_" + name; blockAST.SetTreeEnclosingRuleNameDeeply( predName ); nameToSynpredASTMap.Add(new KeyValuePair<string, GrammarAST>(predName, blockAST)); return predName; }
/** Define a new predicate and get back its name for use in building * a semantic predicate reference to the syn pred. */ public virtual string DefineSyntacticPredicate( GrammarAST blockAST, string currentRuleName ) { if ( nameToSynpredASTMap == null ) { nameToSynpredASTMap = new SortedList<string, GrammarAST>(); } string predName = SynpredRulePrefix + ( nameToSynpredASTMap.Count + 1 ) + "_" + name; blockAST.SetTreeEnclosingRuleNameDeeply( predName ); nameToSynpredASTMap[predName] = blockAST; return predName; }