public override Verb CreateVerb(string[] tokens) { Color(position, tokens[1].Length, IDEColor.EntityType.Whitespace); string visibility = tokens[2]; Color(visibility.Length, IDEColor.EntityType.Verb); string scope = tokens[3]; Color(scope.Length, IDEColor.EntityType.Verb); ClassParser.SetScopeAndVisibility(scope, visibility, this); string messageName = tokens[4]; Color(messageName.Length, IDEColor.EntityType.Variable); Color(tokens[5].Length, IDEColor.EntityType.Structure); var compiler = new OrangeCompiler(source, position + length); Block parameterBlock = compiler.Compile(); int index = compiler.Position; List <Parameter> parameterList = ParameterParser.GetParameterList(parameterBlock); var parameters = new Parameters(parameterList); if (functionBodyParser.Scan(source, index)) { return(createMethod(messageName, functionBodyParser, parameters, false)); } return(equalBlockParser.Scan(source, index) ? createMethod(messageName, equalBlockParser, parameters, true) : null); }