获取函数的类型
本文关键字:类型 函数 获取 | 更新日期: 2023-09-27 18:13:59
我试图在c#中解析这个expression
:
fun(p1, p2, 33,"lina", g(x,5), ...)
我如何获得expression
中所有内容的"类型",给出这些示例:
fun ---> function
p1, p2 ---> variables
33 ---> constant
"lina" ---> constant
g ---> function
x ---> variable
5 ---> constant
一般情况下,您不能用正则表达式解析这样的字符串:正则表达式只能在需要上下文无关的正则语法时使用正则语法(有一些小扩展)。您需要一个解析器(例如Antlr或Irony)。看到
正则语法与上下文无关语法
详情。为了展示您可能面临的困难,让我们来看看字符串和注释:
fun (1 + p1 + 1); // p1 is an argument
fun (/*1 + p1 + 1*/); // p1 is NOT an argument
fun ("/*1" + p1 + "1*/"); // p1 is an argument
fun (/*"/*1" + p1 + "1*+/"*/); // p1 is NOT an argument
fun ("/*""/*1" + p1 + "1*+/""*/"); // p1 is an argument
...