diff --git a/src/old.clj b/src/old.clj index 7f30ae6..222087c 100644 --- a/src/old.clj +++ b/src/old.clj @@ -520,7 +520,7 @@ scopes* (conj scopes (new-scope)) env* (merge env (unification->env unif symtable-ref scopes*))] (expand (transcribe (:template rule) env* @symtable-ref scopes*) - env ;; 아마도 `env*`를 써야 되고 `env`를 안 써야 될까? + env ;; 아마도 `env*`를 써야 되고 `env`를 안 써야 된가? symtable-ref scopes))) diff --git a/src/r7rs.ebnf b/src/r7rs.ebnf index 14dd8ce..e0e1a44 100644 --- a/src/r7rs.ebnf +++ b/src/r7rs.ebnf @@ -3,11 +3,17 @@ program = datum* (* tokens *) boolean = #"#(t(rue)?|f(alse)?)" semicolon = ';' +left-paren = '(' +right-paren = ')' (* datum *) -datum = simple-datum + = simple-datum - = boolean + = boolean | symbol + +(* symbol *) +symbol = ordinary-symbol + = #"[\P{Lu}\P{Ll}\P{Lt}\P{Lm}\P{Lo}\P{Nl}\P{No}\P{Pd}\P{Pc}\P{Sc}\P{Po}\P{Sm}\P{Sk}\P{So}\P{Co}\u200c\u200d&&[^;|\".,#]][\P{Lu}\P{Ll}\P{Lt}\P{Lm}\P{Lo}\P{Nl}\P{No}\P{Pd}\P{Pc}\P{Sc}\P{Po}\P{Sm}\P{Sk}\P{So}\P{Co}\u200c\u200d\P{Nd}\P{Me}\P{Mc}.&&[^;|\",#]]*" (* atmosphere *) atmosphere = whitespace | comment | directive