如果我使用FSYacc生成解析器,它是否是线程安全的?
我问这个问题的唯一原因是因为函数Parsing.rhs_start_pos和Parsing.symbol_end_pos似乎没有传入任何状态,这会让我认为它们正在从共享位置获取当前的NonTerminal/Symbols,这是正确的吗?
反射代码后,我发现它们从静态属性获取了位置。
但这仍然不能解决我的问题...
我问这个问题的唯一原因是因为函数Parsing.rhs_start_pos和Parsing.symbol_end_pos似乎没有传入任何状态,这会让我认为它们正在从共享位置获取当前的NonTerminal/Symbols,这是正确的吗?
反射代码后,我发现它们从静态属性获取了位置。
internal static IParseState parse_information
{
get
{
return parse_information;
}
set
{
parse_information = value;
}
}
这是否正确?如果是,我能做些什么来解决它?
编辑:我还看到一个名为set_parse_state
的静态方法。
public static void set_parse_state(IParseState x)
{
parse_information = x;
}
但这仍然不能解决我的问题...