public void TokenizeIdentifiers1() {
string surrogate = "\ud800\udc00";
Assert(Tokenizer.IsConstantName("C"));
Assert(Tokenizer.IsConstantName("Cx"));
Assert(Tokenizer.IsConstantName("C9"));
Assert(Tokenizer.IsConstantName("CazAZ0123456789_"));
Assert(Tokenizer.IsConstantName("C_"));
Assert(!Tokenizer.IsConstantName(null));
Assert(!Tokenizer.IsConstantName(""));
Assert(!Tokenizer.IsConstantName("C="));
Assert(!Tokenizer.IsConstantName("C?"));
Assert(!Tokenizer.IsConstantName("C!"));
Assert(!Tokenizer.IsConstantName("_"));
Assert(!Tokenizer.IsConstantName("0"));
Assert(!Tokenizer.IsConstantName("c"));
Assert(!Tokenizer.IsConstantName("Σ"));
Assert(Tokenizer.IsConstantName("CΣ"));
Assert(Tokenizer.IsMethodName("C"));
Assert(Tokenizer.IsMethodName("Cx"));
Assert(Tokenizer.IsMethodName("CazAZ0123456789_"));
Assert(Tokenizer.IsMethodName("f="));
Assert(Tokenizer.IsMethodName("f?"));
Assert(Tokenizer.IsMethodName("f!"));
Assert(Tokenizer.IsMethodName("_"));
Assert(Tokenizer.IsMethodName("c"));
Assert(!Tokenizer.IsMethodName("="));
Assert(!Tokenizer.IsMethodName("?"));
Assert(!Tokenizer.IsMethodName("!"));
Assert(!Tokenizer.IsMethodName(null));
Assert(!Tokenizer.IsMethodName(""));
Assert(Tokenizer.IsMethodName("Σ"));
Assert(Tokenizer.IsMethodName(surrogate));
Assert(Tokenizer.IsGlobalVariableName("$x"));
Assert(Tokenizer.IsGlobalVariableName("$XazAZ0123456789_"));
Assert(!Tokenizer.IsGlobalVariableName("$f="));
Assert(!Tokenizer.IsGlobalVariableName("$f?"));
Assert(!Tokenizer.IsGlobalVariableName("$f!"));
Assert(!Tokenizer.IsGlobalVariableName("$f$"));
Assert(!Tokenizer.IsGlobalVariableName(null));
Assert(!Tokenizer.IsGlobalVariableName("$"));
Assert(!Tokenizer.IsGlobalVariableName("$$"));
Assert(!Tokenizer.IsGlobalVariableName("f"));
Assert(!Tokenizer.IsGlobalVariableName("ff"));
Assert(!Tokenizer.IsGlobalVariableName("fff"));
Assert(Tokenizer.IsGlobalVariableName("$Σ"));
Assert(Tokenizer.IsGlobalVariableName("$" + surrogate));
Assert(Tokenizer.IsInstanceVariableName("@x"));
Assert(Tokenizer.IsInstanceVariableName("@XazAZ0123456789_"));
Assert(!Tokenizer.IsInstanceVariableName("@f="));
Assert(!Tokenizer.IsInstanceVariableName("@f?"));
Assert(!Tokenizer.IsInstanceVariableName("@f!"));
Assert(!Tokenizer.IsInstanceVariableName("@f@"));
Assert(!Tokenizer.IsInstanceVariableName(null));
Assert(!Tokenizer.IsInstanceVariableName("@"));
Assert(!Tokenizer.IsInstanceVariableName("@@"));
Assert(!Tokenizer.IsInstanceVariableName("@@@"));
Assert(!Tokenizer.IsInstanceVariableName("f"));
Assert(!Tokenizer.IsInstanceVariableName("ff"));
Assert(!Tokenizer.IsInstanceVariableName("fff"));
Assert(Tokenizer.IsInstanceVariableName("@Σ"));
Assert(Tokenizer.IsInstanceVariableName("@" + surrogate));
Assert(Tokenizer.IsClassVariableName("@@x"));
Assert(Tokenizer.IsClassVariableName("@@XazAZ0123456789_"));
Assert(!Tokenizer.IsClassVariableName("@@f="));
Assert(!Tokenizer.IsClassVariableName("@@f?"));
Assert(!Tokenizer.IsClassVariableName("@@f!"));
Assert(!Tokenizer.IsClassVariableName("@@f@"));
Assert(!Tokenizer.IsClassVariableName(null));
Assert(!Tokenizer.IsClassVariableName("@"));
Assert(!Tokenizer.IsClassVariableName("@@"));
Assert(!Tokenizer.IsClassVariableName("@@@"));
Assert(!Tokenizer.IsClassVariableName("f"));
Assert(!Tokenizer.IsClassVariableName("ff"));
Assert(!Tokenizer.IsClassVariableName("fff"));
Assert(Tokenizer.IsClassVariableName("@@Σ"));
Assert(Tokenizer.IsClassVariableName("@@" + surrogate));
}