0
の文法私はそれのためのパーサを作成する方法のように理解することはできませんよ、この文法があります。新しい言語
module = properties fields methods module#3 'end'
properties = list#0 (property add#2)*
property = 'class' 'name' class# ';'
fields = list#0 (field add#2)*
field = type list#0 id add#2 [';'/','] ! (',' id add#2)* ';' field#2
methods = list#0 (method add#2)*
method = (type id/nothing#0 id) ! '(' args ')' follow method#4
args = list#0 (arg add#2 (',' arg add#2)*)?
arg = type id ! arg#2/nothing#0 id ! arg#2
statements = list#0 (statement add#2)*
statement = do/jump/compound/simple
follow = block/jump/compound/simple
jump = break/continue/return
compound = if/while
simple = local/assign
do = 'do' '{' statements '}' do#1
block = '{' statements '}' block#1
break = 'break' ';' break#0
continue = 'continue' ';' continue#0
return = 'return' (exp/nothing#0) ';' return#1
if = 'if' '(' exp ')' follow ('else' follow/nothing#0) if#3
while = 'while' '(' exp ')' follow while#2
local = type id ! init? local#2 ';'
init = 'assign' exp assign#2/'.' id dot#2 '(' exps ')' call#2
assign = id 'assign' ! exp assign#2 ';'
exp = id ('(' exps ')' call#2/'.' id dot#2 '(' exps ')' call#2)?
exps = list#0 (exp add#2 (',' exp add#2)*)?
type = 'name' type#
id = 'name' id#
'.' = 'DOT'
することは誰も私にはこの文法を理解してくださいでした。 おかげ
「この文法を理解する」とはどういう意味ですか?あなたはもっと具体的になりますか? – templatetypedef
@templatetypedef well..iこの文法を理解できません。特に最初の数行。 – Maverick
あなたはどうしたら分かりませんか?文脈自由文法や正規表現を理解していますか?あなたが理解できないことに特化していない限り、私たちはあなたを助けることはできません。 – templatetypedef