public override IMatched <Unit> Parse(ParseState state, Token[] tokens, ExpressionBuilder builder) { var className = tokens[2].Text; state.Colorize(tokens, Color.Whitespace, Color.Class); if (Module.Global.Class(className).If(out var cls)) { builder.Add(new ClassSymbol(cls.Name)); return(Unit.Matched()); } else if (Module.Global.FullDataComparisandName(className).If(out _)) { builder.Add(new FieldSymbol(className)); return(Unit.Matched()); } else if (Module.Global.Forwarded(className)) { builder.Add(new ClassSymbol(className)); return(Unit.Matched()); } else if (state.ContainsPattern(className)) { builder.Add(new FieldSymbol(className)); return(Unit.Matched()); } else { return(notMatched <Unit>()); } }