Example #1
0
    public static String?GetName(
        this NeuFuncDecl funcDecl)
    {
        foreach (var child in funcDecl.Children)
        {
            switch (child)
            {
            case NeuIdentifier id:

                return(id.Source);

            ///

            case NeuPunc _:

                return(null);

            ///

            default:

                break;
            }
        }

        ///

        return(null);
    }
Example #2
0
    ///

    public async Task Run(
        IEnumerable <IArgument> arguments)
    {
        await Task.Run(() => {
            var generator = new NeuCodeGenerator();

            var f = new NeuFuncDecl(
                name: "foo");

            ///

            generator.Generate(f);

            ///

            var b = generator.Builder.ToString();

            ///

            WriteLine($"Generated code:\n\n```\n{b}\n```\n");
        });
    }
Example #3
0
    public static NeuOperation Execute(
        this NeuInterpreter interpreter,
        NeuFuncDecl funcDecl)
    {
        var name = funcDecl.GetName();

        if (name == null)
        {
            throw new Exception();
        }

        ///

        var func = interpreter.CreateFunc(name, null, null, null, funcDecl);

        if (func == null)
        {
            throw new Exception();
        }

        ///

        return(func);
    }