1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5 <html xmlns="http://www.w3.org/1999/xhtml">
7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9 <title>自然言語プログラミング — プログラミング言語 Ring 1.12 取扱説明書</title>
11 <link rel="stylesheet" href="_static/bootstrap-astropy.css" type="text/css" />
12 <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
14 <script type="text/javascript">
15 var DOCUMENTATION_OPTIONS = {
18 COLLAPSE_INDEX: false,
23 <script type="text/javascript" src="_static/jquery.js"></script>
24 <script type="text/javascript" src="_static/underscore.js"></script>
25 <script type="text/javascript" src="_static/doctools.js"></script>
26 <script type="text/javascript" src="_static/translations.js"></script>
27 <link rel="top" title="プログラミング言語 Ring 1.12 取扱説明書" href="index.html" />
28 <link rel="next" title="自然言語ライブラリの用法" href="naturallibrary.html" />
29 <link rel="prev" title="入れ子構造の宣言型プログラミング" href="declarative.html" />
30 <link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,600' rel='stylesheet' type='text/css'/>
33 <body role="document">
35 <a class="brand" title="Documentation Home" href="index.html"><span id="logotext1">🍩Ring</span><span id="logotext2"> 1.12</span><span id="logotext3">:docs</span></a>
38 <li><a href="http://ring-lang.sourceforge.net/news.html">News</a></li>
39 <li><a href="http://ring-lang.sourceforge.net/download.html">Download</a></li>
40 <li><a href="https://groups.google.com/forum/#!forum/ring-lang">Get Help</a></li>
41 <li><a href="https://github.com/ring-lang/ring">Contribute</a></li>
42 <li><a href="http://ring-lang.sourceforge.net/resources.html">Resources</a></li>
43 <li><a href="http://ring-lang.sourceforge.net/team.html">Team</a></li>
45 <li><a title="Ring Homepage" href="http://ring-lang.net/">Website</a></li>
46 <li><a title="総合索引" href="genindex.html">Index</a></li>
50 <form action="search.html" method="get">
51 <input type="text" name="q" placeholder="Search" />
52 <input type="hidden" name="check_keywords" value="yes" />
53 <input type="hidden" name="area" value="default" />
64 <a href="naturallibrary.html" title="自然言語ライブラリの用法">
69 <a href="declarative.html" title="入れ子構造の宣言型プログラミング">
75 <a href="index.html">プログラミング言語 Ring 1.12 取扱説明書</a>
84 <div class="document">
85 <div class="documentwrapper">
86 <div class="bodywrapper">
87 <div class="body" role="main">
89 <div class="section" id="index-0">
90 <span id="id1"></span><h1>自然言語プログラミング<a class="headerlink" href="#index-0" title="このヘッドラインへのパーマリンク">¶</a></h1>
91 <p>プログラミング言語 Ring でクラスとオブジェクトを土台にした自然プログラミング言語を作成できます。</p>
92 <div class="section" id="index-1">
93 <span id="id2"></span><h2>沿革<a class="headerlink" href="#index-1" title="このヘッドラインへのパーマリンク">¶</a></h2>
94 <p>2010年にプログラミング言語 Supernova の新規開発で Programming Without Coding Technology (PWCT) を使用しました。
95 Supernova は自然言語ステートメントと類似の記法によるコードで GUI アプリケーションを簡単に作成できます。
96 五年後、いまでは同様の成果を Ring で得ることができます。さらに好みや必要に応じて、
97 どのような問題領域であっても自然言語ステートメントに類似したコードの作成、使用する能力があります。</p>
98 <p>Ring は Supernova の精神を受け継いでおり、そのほかにも多種様々な汎用プログラミング言語の精神を受け継いでいます。</p>
100 <div class="section" id="index-2">
101 <span id="id3"></span><h2>用例<a class="headerlink" href="#index-2" title="このヘッドラインへのパーマリンク">¶</a></h2>
102 <p>この用例は、二つの命令を定義するクラスの作成方法です。</p>
103 <p>最初の命令は : I want window</p>
104 <p>次の命令は : Window title = <式></p>
105 <p>また ‘the’ などのキーワードは無視します。</p>
106 <div class="highlight-ring"><div class="highlight"><pre><span class="k">New</span> <span class="n">App</span>
107 <span class="p">{</span>
108 <span class="n">I</span> <span class="n">want</span> <span class="n">window</span>
109 <span class="n">The</span> <span class="n">window</span> <span class="n">title</span> <span class="o">=</span> <span class="s">"hello world"</span>
110 <span class="p">}</span>
112 <span class="k">Class</span> <span class="n">App</span>
114 <span class="c"># I want window 命令の属性</span>
115 <span class="n">i</span> <span class="n">want</span> <span class="n">window</span>
116 <span class="n">nIwantwindow</span> <span class="o">=</span> <span class="mi">0</span>
117 <span class="c"># Window title 命令の属性</span>
118 <span class="c"># ここで window 属性の再定義を行いません。</span>
119 <span class="n">title</span>
120 <span class="n">nWindowTitle</span> <span class="o">=</span> <span class="mi">0</span>
121 <span class="c"># 値を与えると、キーワードを無視します。</span>
122 <span class="n">the</span><span class="o">=</span><span class="mi">0</span>
124 <span class="k">func</span> <span class="n">geti</span>
125 <span class="k">if</span> <span class="n">nIwantwindow</span> <span class="o">=</span> <span class="mi">0</span>
126 <span class="n">nIwantwindow</span><span class="o">++</span>
127 <span class="k">ok</span>
129 <span class="k">func</span> <span class="n">getwant</span>
130 <span class="k">if</span> <span class="n">nIwantwindow</span> <span class="o">=</span> <span class="mi">1</span>
131 <span class="n">nIwantwindow</span><span class="o">++</span>
132 <span class="k">ok</span>
134 <span class="k">func</span> <span class="n">getwindow</span>
135 <span class="k">if</span> <span class="n">nIwantwindow</span> <span class="o">=</span> <span class="mi">2</span>
136 <span class="n">nIwantwindow</span><span class="o">=</span> <span class="mi">0</span>
137 <span class="k">see</span> <span class="s">"Instruction : I want window"</span> <span class="o">+</span> <span class="n">nl</span>
138 <span class="k">ok</span>
139 <span class="k">if</span> <span class="n">nWindowTitle</span> <span class="o">=</span> <span class="mi">0</span>
140 <span class="n">nWindowTitle</span><span class="o">++</span>
141 <span class="k">ok</span>
143 <span class="k">func</span> <span class="n">settitle</span> <span class="n">cValue</span>
144 <span class="k">if</span> <span class="n">nWindowTitle</span> <span class="o">=</span> <span class="mi">1</span>
145 <span class="n">nWindowTitle</span><span class="o">=</span><span class="mi">0</span>
146 <span class="k">see</span> <span class="s">"Instruction : Window Title = "</span> <span class="o">+</span> <span class="n">cValue</span> <span class="o">+</span> <span class="n">nl</span>
147 <span class="k">ok</span>
151 <div class="highlight-ring"><div class="highlight"><pre><span class="n">Instruction</span> <span class="p">:</span> <span class="n">I</span> <span class="n">want</span> <span class="n">window</span>
152 <span class="n">Instruction</span> <span class="p">:</span> <span class="n">Window</span> <span class="n">Title</span> <span class="o">=</span> <span class="n">hello</span> <span class="n">world</span>
156 <div class="section" id="and">
157 <span id="index-3"></span><h2>キーワード‘And’の変更<a class="headerlink" href="#and" title="このヘッドラインへのパーマリンク">¶</a></h2>
158 <p>‘and’で二つの命令同士をつなげたい場合があります。</p>
159 <p>‘and’ は Ring のキーワードであるため、問題がありますが、</p>
160 <p>ChangeRingKeyword 命令により変更できます。</p>
162 <div class="highlight-ring"><div class="highlight"><pre><span class="k">ChangeRingKeyword</span> <span class="o"><</span><span class="n">変更元のキーワード</span><span class="o">></span> <span class="o"><</span><span class="n">変更先のキーワード</span><span class="o">></span>
165 <div class="admonition note">
166 <p class="first admonition-title">注釈</p>
167 <p class="last">キーワードの復元をお忘れなく。</p>
169 <div class="admonition tip">
170 <p class="first admonition-title">ちなみに</p>
171 <p class="last">ChangeRingKeyword 命令はコンパイラにより、字句解析段階で実行されます (構文解析の前に)。</p>
174 <div class="highlight-ring"><div class="highlight"><pre>ChangeRingKeyword and _and
178 I want window and the window title = "hello world"
183 # I want window 命令の属性
187 # ここで window 属性の再定義を行いません。
190 # 値を与えると、キーワードは無視されます。
193 ChangeRingKeyword _and and
208 see "Instruction : I want window" + nl
217 see "Instruction : Window Title = " + cValue + nl
221 see "Using : and" + nl
225 <div class="highlight-ring"><div class="highlight"><pre><span class="n">Instruction</span> <span class="p">:</span> <span class="n">I</span> <span class="n">want</span> <span class="n">window</span>
226 <span class="n">Using</span> <span class="p">:</span> <span class="ow">and</span>
227 <span class="n">Instruction</span> <span class="p">:</span> <span class="n">Window</span> <span class="n">Title</span> <span class="o">=</span> <span class="n">hello</span> <span class="n">world</span>
231 <div class="section" id="index-4">
232 <span id="id4"></span><h2>演算子 ‘+’ の変更<a class="headerlink" href="#index-4" title="このヘッドラインへのパーマリンク">¶</a></h2>
233 <p>“+”演算子などの演算子へ新しい動作を定義したいときがあります。</p>
234 <p>この変更は、 ChangeRingOperator 命令を使用することにより、演算子を隠せます (名前自体の変更)。</p>
235 <p>そして、演算子を識別子としたものを動作として扱うことができます。</p>
237 <div class="highlight-ring"><div class="highlight"><pre><span class="k">ChangeRingOperator</span> <span class="o"><</span><span class="n">変更前の演算子</span><span class="o">></span> <span class="o"><</span><span class="n">変更後の演算子</span><span class="o">></span>
240 <div class="admonition note">
241 <p class="first admonition-title">注釈</p>
242 <p class="last">キーワードの復元をお忘れなく。</p>
244 <div class="admonition tip">
245 <p class="first admonition-title">ちなみに</p>
246 <p class="last">ChangeRingOperator 命令はコンパイラにより、字句解析段階で実行されます (構文解析の前に)。</p>
249 <div class="highlight-ring"><div class="highlight"><pre>ChangeRingOperator + _+
258 see "Plus operator"
260 ChangeRingOperator _+ +
264 <div class="highlight-ring"><div class="highlight"><pre><span class="n">Plus</span> <span class="n">operator</span>
268 <div class="section" id="is">
269 <span id="index-5"></span><h2>‘=’ 演算子を ‘is’ へ変更するには<a class="headerlink" href="#is" title="このヘッドラインへのパーマリンク">¶</a></h2>
271 <div class="highlight-ring"><div class="highlight"><pre>ChangeRingKeyword and _and
272 ChangeRingOperator = is
276 I want window and the window title is "hello world"
279 ChangeRingOperator is =
283 # I want window 命令の属性
287 # ここで window 属性の再定義を行いません。
290 # 値を与えると、キーワードは無視されます。
293 ChangeRingKeyword _and and
308 see "Instruction : I want window" + nl
317 see "Instruction : Window Title = " + cValue + nl
322 <div class="section" id="eval">
323 <span id="index-6"></span><h2>自然言語コードで Eval() を使うには<a class="headerlink" href="#eval" title="このヘッドラインへのパーマリンク">¶</a></h2>
325 <div class="highlight-ring"><div class="highlight"><pre>func Main
327 cProgram = ' I want window and the window title is "hello world" '
331 Func MyLanguage cCode
333 # キーワードと演算子を変更する命令をコードへ追加します。
334 # 理由は Eval() はコンパイラの新しいオブジェクトとして使用されるからです (元のキーワードと演算子)。
337 ChangeRingKeyword and _and
338 ChangeRingOperator = is
349 # I want window 命令の属性
353 # ここで window 属性の再定義を行いません。
356 # 値を与えると、キーワードは無視されます。
359 ChangeRingKeyword and _and
361 ChangeRingKeyword _and and
376 see "Instruction : I want window" + nl
385 see "Instruction : Window Title = " + cValue + nl
390 <div class="section" id="bracestart-braceend">
391 <span id="index-7"></span><h2>BraceStart と BraceEnd メソッド<a class="headerlink" href="#bracestart-braceend" title="このヘッドラインへのパーマリンク">¶</a></h2>
392 <p>{ } の使用前後で実行されるコードを記述できます。</p>
394 <div class="highlight-ring"><div class="highlight"><pre><span class="n">o1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">test</span> <span class="p">{</span>
395 <span class="k">see</span> <span class="s">"Hello"</span> <span class="o">+</span> <span class="n">nl</span>
396 <span class="p">}</span>
398 <span class="n">o1</span> <span class="p">{}</span>
400 <span class="k">class</span> <span class="n">test</span>
402 <span class="k">func</span> <span class="n">bracestart</span>
403 <span class="k">see</span> <span class="s">"start"</span> <span class="o">+</span> <span class="n">nl</span>
405 <span class="k">func</span> <span class="n">braceend</span>
406 <span class="k">see</span> <span class="s">"end"</span> <span class="o">+</span> <span class="n">nl</span>
410 <div class="highlight-ring"><div class="highlight"><pre><span class="n">start</span>
411 <span class="n">Hello</span>
412 <span class="k">end</span>
413 <span class="n">start</span>
414 <span class="k">end</span>
418 <div class="section" id="braceexpreval">
419 <span id="index-8"></span><h2>BraceExprEval メソッド<a class="headerlink" href="#braceexpreval" title="このヘッドラインへのパーマリンク">¶</a></h2>
420 <p>この用例は、 “BraceExprEval”メソッドで自然言語コードの式を取得するための用法です。</p>
422 <div class="highlight-ring"><div class="highlight"><pre><span class="k">new</span> <span class="n">natural</span> <span class="p">{</span>
423 <span class="n">create</span> <span class="mi">5</span>
424 <span class="p">}</span>
426 <span class="k">class</span> <span class="n">natural</span>
427 <span class="n">create</span><span class="o">=</span><span class="mi">0</span>
428 <span class="n">lkeyword</span> <span class="o">=</span> <span class="kp">false</span>
429 <span class="k">func</span> <span class="n">braceexpreval</span> <span class="n">r</span>
430 <span class="k">if</span> <span class="n">lkeyword</span> <span class="n">lkeyword</span><span class="o">=</span><span class="kp">false</span> <span class="k">return</span> <span class="k">ok</span>
431 <span class="k">see</span> <span class="s">"expr eval"</span> <span class="o">+</span> <span class="n">nl</span>
432 <span class="k">see</span> <span class="s">"type: "</span> <span class="o">+</span> <span class="n">type</span><span class="p">(</span><span class="n">r</span><span class="p">)</span> <span class="k">see</span> <span class="n">nl</span>
433 <span class="k">see</span> <span class="s">"value : "</span> <span class="k">see</span> <span class="n">r</span> <span class="k">see</span> <span class="n">nl</span>
434 <span class="k">func</span> <span class="n">getcreate</span>
435 <span class="n">lkeyword</span> <span class="o">=</span> <span class="kp">true</span>
436 <span class="k">see</span> <span class="s">"create"</span> <span class="o">+</span> <span class="n">nl</span>
440 <div class="highlight-ring"><div class="highlight"><pre><span class="n">create</span>
441 <span class="n">expr</span> <span class="n">eval</span>
442 <span class="n">type</span><span class="p">:</span> <span class="n">NUMBER</span>
443 <span class="n">value</span> <span class="p">:</span> <span class="mi">5</span>
447 <div class="section" id="index-9">
448 <span id="id5"></span><h2>本物の自然言語コード<a class="headerlink" href="#index-9" title="このヘッドラインへのパーマリンク">¶</a></h2>
450 <div class="highlight-ring"><div class="highlight"><pre><span class="c"># 自然言語コード</span>
451 <span class="k">new</span> <span class="n">program</span> <span class="p">{</span>
452 <span class="n">Accept</span> <span class="mi">2</span> <span class="n">numbers</span> <span class="n">then</span> <span class="n">print</span> <span class="n">the</span> <span class="n">sum</span>
453 <span class="p">}</span>
455 <span class="c"># 自然言語コードの実装</span>
456 <span class="k">class</span> <span class="n">program</span>
457 <span class="c"># キーワード</span>
458 <span class="n">Accept</span><span class="o">=</span><span class="mi">0</span> <span class="n">numbers</span><span class="o">=</span><span class="mi">0</span> <span class="n">then</span><span class="o">=</span><span class="mi">0</span> <span class="n">print</span><span class="o">=</span><span class="mi">0</span> <span class="n">the</span><span class="o">=</span><span class="mi">0</span> <span class="n">sum</span><span class="o">=</span><span class="mi">0</span>
460 <span class="c"># 実行</span>
461 <span class="k">func</span> <span class="n">braceexpreval</span> <span class="n">x</span>
462 <span class="n">value</span> <span class="o">=</span> <span class="n">x</span>
463 <span class="k">func</span> <span class="n">getnumbers</span>
464 <span class="k">for</span> <span class="n">x</span><span class="o">=</span><span class="mi">1</span> <span class="k">to</span> <span class="n">value</span>
465 <span class="k">see</span> <span class="s">"Enter Number ("</span><span class="o">+</span><span class="n">x</span><span class="o">+</span><span class="s">") :"</span> <span class="k">give</span> <span class="n">nNumber</span>
466 <span class="n">aNumbers</span> <span class="o">+</span> <span class="n">nNumber</span>
467 <span class="k">next</span>
468 <span class="k">func</span> <span class="n">getsum</span>
469 <span class="n">nSUm</span> <span class="o">=</span> <span class="mi">0</span>
470 <span class="k">for</span> <span class="n">x</span> <span class="k">in</span> <span class="n">aNumbers</span> <span class="n">nSum</span><span class="o">+=</span> <span class="n">x</span> <span class="k">next</span>
471 <span class="k">see</span> <span class="s">"The Sum : "</span> <span class="o">+</span> <span class="n">nSum</span>
472 <span class="n">private</span>
473 <span class="n">value</span><span class="o">=</span><span class="mi">0</span> <span class="n">aNumbers</span><span class="o">=[]</span>
477 <div class="highlight-ring"><div class="highlight"><pre><span class="n">Enter</span> <span class="n">Number</span> <span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="p">:</span><span class="mi">3</span>
478 <span class="n">Enter</span> <span class="n">Number</span> <span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="p">:</span><span class="mi">4</span>
479 <span class="n">The</span> <span class="n">Sum</span> <span class="p">:</span> <span class="mi">7</span>
483 <div class="section" id="braceerror">
484 <span id="index-10"></span><h2>BraceError() メソッド<a class="headerlink" href="#braceerror" title="このヘッドラインへのパーマリンク">¶</a></h2>
485 <p>この用例は、 “BraceError” メソッドで括弧 { } を用いてオブジェクトへアクセスした時の
488 <div class="highlight-ring"><div class="highlight"><pre><span class="k">func</span> <span class="n">main</span>
489 <span class="n">o1</span> <span class="o">=</span> <span class="k">new</span> <span class="n">point</span> <span class="p">{</span>
490 <span class="n">x</span><span class="o">=</span><span class="mi">10</span> <span class="n">y</span><span class="o">=</span><span class="mi">20</span> <span class="n">z</span><span class="o">=</span><span class="mi">30</span>
491 <span class="n">TEST</span>
492 <span class="k">SEE</span> <span class="n">test</span>
493 <span class="p">}</span>
495 <span class="k">class</span> <span class="n">point</span> <span class="n">x</span> <span class="n">y</span> <span class="n">z</span>
496 <span class="k">func</span> <span class="n">braceerror</span>
497 <span class="k">see</span> <span class="s">"Handle Error!"</span> <span class="o">+</span> <span class="n">nl</span>
498 <span class="k">SEE</span> <span class="s">"Message :"</span> <span class="o">+</span> <span class="n">cCatchError</span> <span class="o">+</span> <span class="n">nl</span>
499 <span class="k">if</span> <span class="p">(</span> <span class="n">left</span><span class="p">(</span><span class="n">cCatchError</span><span class="p">,</span><span class="mi">11</span><span class="p">)</span> <span class="o">=</span> <span class="s">"Error (R24)"</span> <span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">isattribute</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"test"</span><span class="p">)</span>
500 <span class="k">see</span> <span class="s">"add attribute"</span> <span class="o">+</span> <span class="n">nl</span>
501 <span class="n">addattribute</span><span class="p">(</span><span class="n">self</span><span class="p">,</span><span class="s">"test"</span><span class="p">)</span>
502 <span class="n">test</span> <span class="o">=</span> <span class="mi">10</span>
503 <span class="k">ok</span>
504 <span class="k">see</span> <span class="s">"done"</span> <span class="o">+</span> <span class="n">nl</span>
505 <span class="k">return</span>
509 <div class="highlight-ring"><div class="highlight"><pre><span class="n">Handle</span> <span class="n">Error</span><span class="o">!</span>
510 <span class="n">Message</span> <span class="p">:</span><span class="n">Error</span> <span class="p">(</span><span class="n">R24</span><span class="p">)</span> <span class="p">:</span> <span class="n">Using</span> <span class="n">uninitialized</span> <span class="n">variable</span> <span class="p">:</span> <span class="n">test</span>
511 <span class="n">add</span> <span class="n">attribute</span>
512 <span class="k">done</span>
513 <span class="mi">10</span>
517 <div class="highlight-ring"><div class="highlight"><pre><span class="k">new</span> <span class="n">point</span> <span class="p">{</span>
518 <span class="n">x</span><span class="o">=</span><span class="mi">10</span> <span class="n">y</span><span class="o">=</span><span class="mi">20</span> <span class="n">z</span><span class="o">=</span><span class="mi">30</span>
519 <span class="n">test</span><span class="p">()</span>
520 <span class="k">see</span> <span class="s">"mmm..."</span> <span class="o">+</span> <span class="n">NL</span>
521 <span class="p">}</span>
523 <span class="k">class</span> <span class="n">point</span> <span class="n">x</span> <span class="n">y</span> <span class="n">z</span>
524 <span class="k">func</span> <span class="n">braceerror</span>
525 <span class="k">see</span> <span class="s">"Handle Error!"</span> <span class="o">+</span> <span class="n">nl</span>
526 <span class="k">see</span> <span class="s">"Message :"</span> <span class="o">+</span> <span class="n">cCatchError</span> <span class="o">+</span> <span class="n">nl</span>
527 <span class="k">see</span> <span class="n">self</span>
528 <span class="k">see</span> <span class="s">"Done"</span> <span class="o">+</span> <span class="n">NL</span>
532 <div class="highlight-ring"><div class="highlight"><pre><span class="n">Handle</span> <span class="n">Error</span><span class="o">!</span>
533 <span class="n">Message</span> <span class="p">:</span><span class="n">Error</span> <span class="p">(</span><span class="n">R3</span><span class="p">)</span> <span class="p">:</span> <span class="n">Calling</span> <span class="n">Function</span> <span class="n">without</span> <span class="n">definition</span> <span class="o">!</span><span class="p">:</span> <span class="n">test</span>
534 <span class="n">x</span><span class="p">:</span> <span class="mf">10.000000</span>
535 <span class="n">y</span><span class="p">:</span> <span class="mf">20.000000</span>
536 <span class="n">z</span><span class="p">:</span> <span class="mf">30.000000</span>
537 <span class="k">Done</span>
538 <span class="n">mmm</span><span class="p">...</span>
542 <div class="section" id="index-11">
543 <span id="id6"></span><h2>美しい自然言語コード<a class="headerlink" href="#index-11" title="このヘッドラインへのパーマリンク">¶</a></h2>
544 <p>“literal”としてリテラルを入力する代わりに直接単語を受け入れることができます。</p>
546 <p>この用例では、“hello world”の代わりに hello world を受け入れます。</p>
547 <p>この用例では、命令の終了を確認するために braceend() を使用しています。</p>
548 <p>このクラスではリテラルで終了する自然言語命令のみ処理します。</p>
549 <div class="highlight-ring"><div class="highlight"><pre>ChangeRingKeyword and _and
553 I want window and the window title is hello world
558 # I want window 命令の属性
562 # ここで window 属性の再定義を行いません。
565 # 値を与えると、キーワードは無視されます。
568 literal = ""
570 ChangeRingKeyword _and and
585 see "Instruction : I want window" + nl
603 see "Instruction : Window Title = " + literal + nl
608 c= substr(cCatchError,":")
610 c= substr(cCatchError,":")
611 cCatchError=substr(cCatchError,c+1)
613 literal += substr(cCatchError,1)
623 <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
624 <div class="sphinxsidebarwrapper"><h3>ページの内容</h3>
626 <li><a class="reference internal" href="#">自然言語プログラミング</a><ul>
627 <li><a class="reference internal" href="#index-1">沿革</a></li>
628 <li><a class="reference internal" href="#index-2">用例</a></li>
629 <li><a class="reference internal" href="#and">キーワード‘And’の変更</a></li>
630 <li><a class="reference internal" href="#index-4">演算子 ‘+’ の変更</a></li>
631 <li><a class="reference internal" href="#is">‘=’ 演算子を ‘is’ へ変更するには</a></li>
632 <li><a class="reference internal" href="#eval">自然言語コードで Eval() を使うには</a></li>
633 <li><a class="reference internal" href="#bracestart-braceend">BraceStart と BraceEnd メソッド</a></li>
634 <li><a class="reference internal" href="#braceexpreval">BraceExprEval メソッド</a></li>
635 <li><a class="reference internal" href="#index-9">本物の自然言語コード</a></li>
636 <li><a class="reference internal" href="#braceerror">BraceError() メソッド</a></li>
637 <li><a class="reference internal" href="#index-11">美しい自然言語コード</a></li>
644 <p class="topless"><a href="declarative.html"
645 title="前の章へ">入れ子構造の宣言型プログラミング</a></p>
647 <p class="topless"><a href="naturallibrary.html"
648 title="次の章へ">自然言語ライブラリの用法</a></p>
649 <div role="note" aria-label="source link">
651 <ul class="this-page-menu">
652 <li><a href="_sources/natural.txt"
653 rel="nofollow">ソースコードを表示</a></li>
657 <form action="search.html" method="get">
658 <input type="text" name="q" placeholder="Search" />
659 <input type="hidden" name="check_keywords" value="yes" />
660 <input type="hidden" name="area" value="default" />
665 <div class="clearer"></div>
667 <footer class="footer">
668 <p class="pull-right">
669 <a href="_sources/natural.txt"
670 rel="nofollow">Page Source</a>
671 <a href="#">Back to Top</a></p>
673 © Copyright 2016-2020, Ring Team.<br/>
674 Created using <a href="http://www.sphinx-doc.org/en/stable/">Sphinx</a> 1.3.6. / astropy-sphinx-theme 1.1 (isVowel)