Ejemplo n.º 1
0
        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);
        }