我正在为工作项目开发一种简单的脚本语言,因此我需要创建type name = value
形式的定义语句。我一直在遵循SuperpowerSimpleSql example并创建了令牌生成器,该令牌生成器正确地对输入进行了令牌化。
问题来自于为赋值语句创建TokenListParser。当前,解析器定义为:
public static TokenListParser<AumToken, ShmemWord> ShmemWord =
from keyword in Token.EqualToValueIgnoreCase(AumToken.Keyword, "ShmemWord")
from name in Token.EqualTo(AumToken.Keyword)
from equal in Token.EqualTo(AumToken.Assignment)
from value in Token>EqualTo(AumToken.Number).Apply(Numerics.HexDigitsUInt64)
select new ShmemWord(name, value);
和ShmemWord
是带有构造函数签名ShmemWord(string name, ulong value)
的简单类。
到目前为止,我是否已经正确定义了,如何将名称转换为字符串?
答案 0 :(得分:1)
Token<TKind>
为此提供了ToStringValue()
:
select new ShmemWord(name.ToStringValue(), value);