GrammarRules[rules]
GrammarApplyおよびInterpreterのような関数で使われるのにふさわしい形で文法を実装する,クラウドオブジェクトに配備されるべき文法規則を表す.
GrammarRules[rules,defs]
文法定義 defs を使う.
GrammarRules
GrammarRules[rules]
GrammarApplyおよびInterpreterのような関数で使われるのにふさわしい形で文法を実装する,クラウドオブジェクトに配備されるべき文法規則を表す.
GrammarRules[rules,defs]
文法定義 defs を使う.
詳細とオプション
- 文法規則は pattern->expr または pattern:>expr の形である.
- 文法規則におけるパターンは,次の要素の組合せでなければならない.
-
"string" 文字通りの文字列 StringExpression[…] 任意の文字列パターン RegularExpression[…] 正規表現 form1|form2|… 代替形 OptionalElement[form,def] デフォルトを示したオプション形 FixedOrder[form1,form2,…] 一定の順序で出現しなければならない形 AnyOrder[form1,form2,…] 任意の順序で出現してもよい形 form.. 任意回数繰り返される形 DelimitedSequence[form,…] デリミタを間に挟んで繰り返される形 GrammarToken["name"] 組込みまたは定義された領域 CaseSensitive[form] 大文字小文字の区別にマッチしなければならない形 x:form 使用されるべき名前付きの形 - CloudDeploy[GrammarRules[…]]は,文法を配備し,クラウドオブジェクトを返す.GrammarApplyおよびInterpreterで使うことができる.
- 文法に関連する規則は,事実上,どのように入力を式に変換すべきかを指定している.
- GrammarRules[rules,defs]では,リスト defs は,主文法規則で使うことができる文法領域についての補助規則を与えることができる.
- GrammarRulesは次のオプションをサポートする.
-
AllowLooseGrammar Automatic 余分な文法的「間違い」を許可するかどうか IgnoreDiacritics True 文法規則を適用するときに,付加記号を無視するかどうか IgnoreCase True 大文字小文字の区別についてのデフォルト(区別しない) AmbiguityFunction Automatic 曖昧さを処理するデフォルトの関数 SaveDefinitions False rules および defs に関連付けられたすべての定義を保存するかどうか Initialization None 文法が適用された場合に評価される式
例題
すべて開く すべて閉じる例 (2)
addition = CloudDeploy[GrammarRules[{FixedOrder["add", a : GrammarToken["SemanticNumber"], "and", b : GrammarToken["SemanticNumber"]] :> a + b}
]
]GrammarApply[addition, "add six and seven"]カスタムのGrammarTokenオブジェクトについて,規則を定義する:
controller = CloudDeploy[
GrammarRules[{
FixedOrder["turn", state : GrammarToken["OnOff"], OptionalElement["the"], appliance : GrammarToken["Appliance"]] :> appliance -> state
},
{
"OnOff" -> GrammarToken["On"],
"OnOff" -> GrammarToken["Off"],
"On" -> "on" :> "On",
"Off" -> "off" :> "Off",
"Appliance" -> GrammarToken["Stove"],
"Appliance" -> GrammarToken["Refrigerator"],
"Appliance" -> GrammarToken["Furnace"],
"Appliance" -> GrammarToken["AirConditioning"],
"Appliance" -> GrammarToken["Oven"],
"Stove" -> FixedOrder["stove", OptionalElement["top"]] :> "Stove",
"Refrigerator" -> "fridge" | "refrigerator" :> "Refrigerator",
"Furnace" -> "heat" | "furnace" | "boiler" :> "Furnace",
"AirConditioning" -> FixedOrder["air", OptionalElement["conditioning"]] | "ac" | "a/c" :> "AirConditioning",
"Oven" -> "oven" :> "Oven"
}]
]GrammarApply[controller, "turn off the stove"]GrammarApply[controller, "turn on a/c"]特性と関係 (1)
RepeatedおよびDelimitedSequenceは,再帰的文法規則に等しい:
grammar = CloudDeploy[
GrammarRules[{
GrammarToken["Cities"]
}, {
"Cities" -> c : GrammarToken["City"] :> {c},
"Cities" -> FixedOrder[
cs : GrammarToken["Cities"],
OptionalElement["," | "|" | "and" | ";"],
c : GrammarToken["City"]
] :> Append[cs, c]
}]
]delseq = CloudDeploy[
GrammarRules[{
cs : DelimitedSequence[GrammarToken["City"], "," | "|" | "and" | ";"] :> cs
}]
]GrammarApply[grammar, "Chicago, New York, LA"]GrammarApply[delseq, "Chicago, New York, LA"]考えられる問題 (1)
文法規則の右辺の式は,GrammarApplyの間に評価される:
GrammarApply[CloudDeploy[GrammarRules[{a : GrammarToken["MathExpression"] :> a}]], "1+1"]式が評価されないようにするため,HoldCompleteあるいはInactivateのようなラッパーを使う:
GrammarApply[CloudDeploy[GrammarRules[{a : GrammarToken["MathExpression"] :> Inactivate[a]}]], "1+1"]関連するガイド
テキスト
Wolfram Research (2014), GrammarRules, Wolfram言語関数, https://reference.wolfram.com/language/ref/GrammarRules.html (2015年に更新).
CMS
Wolfram Language. 2014. "GrammarRules." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2015. https://reference.wolfram.com/language/ref/GrammarRules.html.
APA
Wolfram Language. (2014). GrammarRules. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/GrammarRules.html
BibTeX
@misc{reference.wolfram_2026_grammarrules, author="Wolfram Research", title="{GrammarRules}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/GrammarRules.html}", note=[Accessed: 28-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_grammarrules, organization={Wolfram Research}, title={GrammarRules}, year={2015}, url={https://reference.wolfram.com/language/ref/GrammarRules.html}, note=[Accessed: 28-June-2026]}