这是 c# 中的语法或语义错误吗

Is this syntax or semantic error in c#

我正在做我的编译器构造任务,并为语法设计cfgs,我只想知道这是语法错误还是语义错误。 (嵌套函数)

void function1()
{
    int a = 0;
    void function2()
    {
        int ae=0;
    }
}

我应该用语法还是语义来处理这个问题

这是一个语法错误,因为您不能在函数内定义命名函数。但是,您可以使用 lambda expression 创建使用当前函数范围的未命名函数。