Javascript 是否可以将PEG.js与令牌数组而不是字符串一起使用?

Javascript 是否可以将PEG.js与令牌数组而不是字符串一起使用?,javascript,pegjs,Javascript,Pegjs,我有以下代表不同类型数据的类: class A { ... } class S { ... } class F { ... } 然后我构造输入数组: var input = [new F(), new A([11,22]), new S([33,44]), new F([55,66]), new A([77,88])] 然后我为PEG.js构建了一个语法: start = (F A*)+ A = 'a' / S S = 's'+ (A|F) F = 'f' 我知道我可以使用带有字符串的PE

我有以下代表不同类型数据的类:

class A { ... }
class S { ... }
class F { ... }
然后我构造输入数组:

var input = [new F(), new A([11,22]), new S([33,44]), new F([55,66]), new A([77,88])]
然后我为PEG.js构建了一个语法:

start = (F A*)+
A = 'a' / S
S = 's'+ (A|F)
F = 'f'
我知道我可以使用带有字符串的PEG.js作为输入(例如fasfa)。但我看不到使用我自己的令牌输入流的方法。有可能吗


已更新

最初的问题可以概括为“我需要一种构建工具栏的方法” 一次一个街区”。目前我有3种类型的块:Append, 壁球,决赛

Append - just appends current buttons into the resulting array
Squash - behaves like Append only if next block is Append (several
         Squash block melded into one)
Final  - just like Append, but if there is something next to it,
         it will start from the empty resulting array
几个例子:

Append([11,22])
    [11,22]

Append([11,22])
Squash([33,44])
    [11,22]

Append([11,22])
Squash([33,44])
Append([55,66])
    [11,22,33,44,55,66]

Append([11,22])
Squash([33,44])
Final([55,66])
    [11,22,33,44,55,66]

Append([11,22])
Squash([33,44])
Final([55,66])
Append([77,88])
    [77,88]

我认为可以把这个问题看作某种语言问题。也就是说,我有一个令牌输入流,我需要将其转换为其他东西(例如,某个对象)。

您好,来自摩尔多瓦。你能不能再详细说明一下你的问题,或者你想达到什么目的?你需要更新Pegjs结构吗?那么你需要一个Pegjs语法,它通过一系列的追加、挤压和最终动作生成最终数组?有多少个参数append、squash和final accept(在您的示例中,我看到了两个参数)?实际上所有这些参数(append、squash和final)都将接受对象数组。每个对象将代表一个按钮。为了简单起见,我在这里使用了数字。(已经更新了描述-每个块采用数组…,结果也是数组…)我认为解析数组元素不是问题,但问题是pegs结果库将使用整数作为文本处理器。您提到输入将是一个对象数组。