从 SuperPower 中的关键字获取字符串

Get string from Keyword in SuperPower

我正在为一个工作项目开发一种简单的脚本语言,我需要创建一个 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 是一个简单的 class 构造函数签名 ShmemWord(string name, ulong value).

到目前为止,我是否正确定义了它?如何将名称转换为字符串?

Token<TKind> 为此提供 ToStringValue()

     select new ShmemWord(name.ToStringValue(), value);