//throws Exception protected void checkSymbols( Grammar g, string rulesStr, string tokensStr ) { var tokens = g.GetTokenDisplayNames(); // make sure expected tokens are there //StringTokenizer st = new StringTokenizer( tokensStr, ", " ); //while ( st.hasMoreTokens() ) foreach ( string tokenName in tokensStr.Split( new string[] { ", " }, StringSplitOptions.RemoveEmptyEntries ) ) { //String tokenName = st.nextToken(); Assert.IsTrue(g.GetTokenType(tokenName) != Label.INVALID, "token " + tokenName + " expected"); tokens.Remove( tokenName ); } // make sure there are not any others (other than <EOF> etc...) foreach ( string tokenName in tokens ) { Assert.IsTrue( g.GetTokenType( tokenName ) < Label.MIN_TOKEN_TYPE, "unexpected token name " + tokenName ); } // make sure all expected rules are there //st = new StringTokenizer( rulesStr, ", " ); int n = 0; //while ( st.hasMoreTokens() ) foreach ( string ruleName in rulesStr.Split( new string[] { ", " }, StringSplitOptions.RemoveEmptyEntries ) ) { //String ruleName = st.nextToken(); Assert.IsNotNull(g.GetRule(ruleName), "rule " + ruleName + " expected"); n++; } var rules = g.Rules; //System.out.println("rules="+rules); // make sure there are no extra rules Assert.AreEqual(n, rules.Count, "number of rules mismatch; expecting " + n + "; found " + rules.Count); }