Esempio n. 1
0
        public override void VisitConcreteMethodDeclaration(ConcreteMethodDeclarationSyntaxNode node)
        {
            _insideMethod        = true;
            _variableAssignments = new VariableAssignments();
            var parameterList = node.InputDescription.ParameterList;

            foreach (var parameter in parameterList)
            {
                if (parameter.IsNode)
                {
                    var parameterAsNode = parameter.AsNode();
                    Console.WriteLine($"Parameter node: {parameterAsNode}");
                    if (parameterAsNode.Kind == TokenKind.IdentifierNameExpression)
                    {
                        Console.WriteLine($"Adding variable assignment for {parameterAsNode.Text}");
                        _variableAssignments.Add(parameterAsNode.Text, new Variable());
                    }
                    else
                    {
                        Console.WriteLine($"Don't know how to add assignment for {parameterAsNode.Text}");
                    }
                }
                else
                {
                    Console.WriteLine($"Parameter token: {parameter.AsToken()}");
                }
            }
            base.VisitConcreteMethodDeclaration(node);
            _variableAssignments = null;
            _insideMethod        = false;
        }
Esempio n. 2
0
 public override void VisitConcreteMethodDeclaration(ConcreteMethodDeclarationSyntaxNode node)
 {
     AddToken(node.FunctionKeyword, _scheme.Keyword);
     Visit(node.OutputDescription);
     Visit(node.InputDescription);
     Visit(node.Commas);
     Visit(node.Body);
     Visit(node.EndKeyword);
 }
Esempio n. 3
0
 public override void VisitConcreteMethodDeclaration(ConcreteMethodDeclarationSyntaxNode node)
 {
     OutputKeyword(node.FunctionKeyword);
     Visit(node.OutputDescription);
     BoldOn();
     Visit(node.Name);
     BoldOff();
     Visit(node.InputDescription);
     Visit(node.Commas);
     Visit(node.Body);
     Visit(node.EndKeyword);
 }
Esempio n. 4
0
        private static MMethod MethodFromDefinition(ConcreteMethodDeclarationSyntaxNode methodDefinition)
        {
            var name        = methodDefinition.Name.Text;
            var description = "";

            description += string.Join("", methodDefinition.LeadingTrivia.Select(x => x.FullText));
            if (methodDefinition.Body == null)
            {
                description += string.Join("", methodDefinition.EndKeyword.LeadingTrivia.Select(x => x.FullText));
            }
            else
            {
                description += string.Join("", methodDefinition.Body.LeadingTrivia.Select(x => x.FullText));
            }

            return(new MMethod(name, description));
        }
Esempio n. 5
0
 public override void VisitConcreteMethodDeclaration(ConcreteMethodDeclarationSyntaxNode node)
 {
     _insideMethod = true;
     base.VisitConcreteMethodDeclaration(node);
     _insideMethod = false;
 }
Esempio n. 6
0
 public virtual void VisitConcreteMethodDeclaration(ConcreteMethodDeclarationSyntaxNode node)
 {
     DefaultVisit(node);
 }