<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>C.h.a.o.s.m.y.t.h.のまったりブログ～</title>
<link>https://ameblo.jp/gachupin311/</link>
<atom:link href="https://rssblog.ameba.jp/gachupin311/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>まったり、更新していきますー</description>
<language>ja</language>
<item>
<title>コンパイル例</title>
<description>
<![CDATA[ <div dir="ltr" class="mw-geshi mw-code mw-content-ltr"><div class="c source-c"><pre class="de1"><span class="co2"><font color="#339933">#include &lt;stdlib.h&gt;</font></span><span class="co2"><font color="#339933">#include &lt;stdio.h&gt;</font></span><span class="co2"><font color="#339933">#include &lt;string.h&gt;</font></span> <span class="co2"><font color="#339933">#define MODE_POSTFIX     0</font></span><span class="co2"><font color="#339933">#define MODE_ASSEMBLY    1</font></span> <span class="kw4"><font color="#993333">char</font></span>    lookahead<span class="sy0"><font color="#339933">;</font></span><span class="kw4"><font color="#993333">int</font></span>     pos<span class="sy0"><font color="#339933">;</font></span><span class="kw4"><font color="#993333">int</font></span>     compile_mode<span class="sy0"><font color="#339933">;</font></span><span class="kw4"><font color="#993333">char</font></span>    expression<span class="br0"><font color="#009900">[</font></span><span class="nu0"><font color="#0000dd">20</font></span><span class="sy0"><font color="#339933">+</font></span><span class="nu0"><font color="#0000dd">1</font></span><span class="br0"><font color="#009900">]</font></span><span class="sy0"><font color="#339933">;</font></span> <span class="kw4"><font color="#993333">void</font></span> error<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="br0"><font color="#009900">{</font></span>        <span class="kw3"><font color="#000066">printf</font></span><span class="br0"><font color="#009900">(</font></span><span class="st0"><font color="#ff0000">"Syntax error!</font><span class="es1"><strong><font color="#000099">\n</font></strong></span><font color="#ff0000">"</font></span><span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span><span class="br0"><font color="#009900">}</font></span> <span class="kw4"><font color="#993333">void</font></span> match<span class="br0"><font color="#009900">(</font></span> <span class="kw4"><font color="#993333">char</font></span> t <span class="br0"><font color="#009900">)</font></span><span class="br0"><font color="#009900">{</font></span>        <span class="kw1"><font color="#b1b100">if</font></span><span class="br0"><font color="#009900">(</font></span> lookahead <span class="sy0"><font color="#339933">==</font></span> t <span class="br0"><font color="#009900">)</font></span>        <span class="br0"><font color="#009900">{</font></span>                pos<span class="sy0"><font color="#339933">++;</font></span>                lookahead <span class="sy0"><font color="#339933">=</font></span> expression<span class="br0"><font color="#009900">[</font></span>pos<span class="br0"><font color="#009900">]</font></span><span class="sy0"><font color="#339933">;</font></span>        <span class="br0"><font color="#009900">}</font></span>        <span class="kw1"><font color="#b1b100">else</font></span>                error<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="sy0"><font color="#339933">;</font></span><span class="br0"><font color="#009900">}</font></span> <span class="kw4"><font color="#993333">void</font></span> digit<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="br0"><font color="#009900">{</font></span>        <span class="kw1"><font color="#b1b100">switch</font></span><span class="br0"><font color="#009900">(</font></span> lookahead <span class="br0"><font color="#009900">)</font></span>        <span class="br0"><font color="#009900">{</font></span>                <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'0'</font></span><span class="sy0"><font color="#339933">:</font></span>                <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'1'</font></span><span class="sy0"><font color="#339933">:</font></span>                <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'2'</font></span><span class="sy0"><font color="#339933">:</font></span>                <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'3'</font></span><span class="sy0"><font color="#339933">:</font></span>                <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'4'</font></span><span class="sy0"><font color="#339933">:</font></span>                <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'5'</font></span><span class="sy0"><font color="#339933">:</font></span>                <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'6'</font></span><span class="sy0"><font color="#339933">:</font></span>                <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'7'</font></span><span class="sy0"><font color="#339933">:</font></span>                <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'8'</font></span><span class="sy0"><font color="#339933">:</font></span>                <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'9'</font></span><span class="sy0"><font color="#339933">:</font></span>                        <span class="kw1"><font color="#b1b100">if</font></span><span class="br0"><font color="#009900">(</font></span> compile_mode <span class="sy0"><font color="#339933">==</font></span> MODE_POSTFIX <span class="br0"><font color="#009900">)</font></span>                                <span class="kw3"><font color="#000066">printf</font></span><span class="br0"><font color="#009900">(</font></span><span class="st0"><font color="#ff0000">"%c"</font></span><span class="sy0"><font color="#339933">,</font></span> lookahead<span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>                        <span class="kw1"><font color="#b1b100">else</font></span>                                <span class="kw3"><font color="#000066">printf</font></span><span class="br0"><font color="#009900">(</font></span><span class="st0"><font color="#ff0000">"</font><span class="es1"><strong><font color="#000099">\t</font></strong></span><font color="#ff0000">PUSH %c</font><span class="es1"><strong><font color="#000099">\n</font></strong></span><font color="#ff0000">"</font></span><span class="sy0"><font color="#339933">,</font></span> lookahead<span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>                         match<span class="br0"><font color="#009900">(</font></span> lookahead <span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>                        <span class="kw2"><strong>break</strong></span><span class="sy0"><font color="#339933">;</font></span>                <span class="kw1"><font color="#b1b100">default</font></span><span class="sy0"><font color="#339933">:</font></span>                        error<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="sy0"><font color="#339933">;</font></span>                        <span class="kw2"><strong>break</strong></span><span class="sy0"><font color="#339933">;</font></span>        <span class="br0"><font color="#009900">}</font></span><span class="br0"><font color="#009900">}</font></span> <span class="kw4"><font color="#993333">void</font></span> term<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="br0"><font color="#009900">{</font></span>        digit<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="sy0"><font color="#339933">;</font></span>        <span class="kw1"><font color="#b1b100">while</font></span><span class="br0"><font color="#009900">(</font></span><span class="nu0"><font color="#0000dd">1</font></span><span class="br0"><font color="#009900">)</font></span>        <span class="br0"><font color="#009900">{</font></span>                <span class="kw1"><font color="#b1b100">switch</font></span><span class="br0"><font color="#009900">(</font></span> lookahead <span class="br0"><font color="#009900">)</font></span>                <span class="br0"><font color="#009900">{</font></span>                        <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'*'</font></span><span class="sy0"><font color="#339933">:</font></span>                                match<span class="br0"><font color="#009900">(</font></span><span class="st0"><font color="#ff0000">'*'</font></span><span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>                                digit<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="sy0"><font color="#339933">;</font></span>                                 <span class="kw3"><font color="#000066">printf</font></span><span class="br0"><font color="#009900">(</font></span> <span class="st0"><font color="#ff0000">"%s"</font></span><span class="sy0"><font color="#339933">,</font></span> compile_mode <span class="sy0"><font color="#339933">==</font></span> MODE_POSTFIX <span class="sy0"><font color="#339933">?</font></span> <span class="st0"><font color="#ff0000">"*"</font></span>                                        <span class="sy0"><font color="#339933">:</font></span> <span class="st0"><font color="#ff0000">"</font><span class="es1"><strong><font color="#000099">\t</font></strong></span><font color="#ff0000">POP B</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">POP A</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">MUL A, B</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">PUSH A</font><span class="es1"><strong><font color="#000099">\n</font></strong></span><font color="#ff0000">"</font></span><span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>                                 <span class="kw2"><strong>break</strong></span><span class="sy0"><font color="#339933">;</font></span>                        <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'/'</font></span><span class="sy0"><font color="#339933">:</font></span>                                match<span class="br0"><font color="#009900">(</font></span><span class="st0"><font color="#ff0000">'/'</font></span><span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>                                digit<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="sy0"><font color="#339933">;</font></span>                                 <span class="kw3"><font color="#000066">printf</font></span><span class="br0"><font color="#009900">(</font></span> <span class="st0"><font color="#ff0000">"%s"</font></span><span class="sy0"><font color="#339933">,</font></span> compile_mode <span class="sy0"><font color="#339933">==</font></span> MODE_POSTFIX <span class="sy0"><font color="#339933">?</font></span> <span class="st0"><font color="#ff0000">"/"</font></span>                                        <span class="sy0"><font color="#339933">:</font></span> <span class="st0"><font color="#ff0000">"</font><span class="es1"><strong><font color="#000099">\t</font></strong></span><font color="#ff0000">POP B</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">POP A</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">DIV A, B</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">PUSH A</font><span class="es1"><strong><font color="#000099">\n</font></strong></span><font color="#ff0000">"</font></span><span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>                                <span class="kw2"><strong>break</strong></span><span class="sy0"><font color="#339933">;</font></span>                        <span class="kw1"><font color="#b1b100">default</font></span><span class="sy0"><font color="#339933">:</font></span>                                <span class="kw1"><font color="#b1b100">return</font></span><span class="sy0"><font color="#339933">;</font></span>                <span class="br0"><font color="#009900">}</font></span>        <span class="br0"><font color="#009900">}</font></span><span class="br0"><font color="#009900">}</font></span> <span class="kw4"><font color="#993333">void</font></span> expr<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="br0"><font color="#009900">{</font></span>        term<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="sy0"><font color="#339933">;</font></span>        <span class="kw1"><font color="#b1b100">while</font></span><span class="br0"><font color="#009900">(</font></span><span class="nu0"><font color="#0000dd">1</font></span><span class="br0"><font color="#009900">)</font></span>        <span class="br0"><font color="#009900">{</font></span>                <span class="kw1"><font color="#b1b100">switch</font></span><span class="br0"><font color="#009900">(</font></span> lookahead <span class="br0"><font color="#009900">)</font></span>                <span class="br0"><font color="#009900">{</font></span>                        <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'+'</font></span><span class="sy0"><font color="#339933">:</font></span>                                match<span class="br0"><font color="#009900">(</font></span><span class="st0"><font color="#ff0000">'+'</font></span><span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>                                term<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="sy0"><font color="#339933">;</font></span>                                 <span class="kw3"><font color="#000066">printf</font></span><span class="br0"><font color="#009900">(</font></span> <span class="st0"><font color="#ff0000">"%s"</font></span><span class="sy0"><font color="#339933">,</font></span> compile_mode <span class="sy0"><font color="#339933">==</font></span> MODE_POSTFIX <span class="sy0"><font color="#339933">?</font></span> <span class="st0"><font color="#ff0000">"+"</font></span>                                        <span class="sy0"><font color="#339933">:</font></span> <span class="st0"><font color="#ff0000">"</font><span class="es1"><strong><font color="#000099">\t</font></strong></span><font color="#ff0000">POP B</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">POP A</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">ADD A, B</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">PUSH A</font><span class="es1"><strong><font color="#000099">\n</font></strong></span><font color="#ff0000">"</font></span><span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>                                <span class="kw2"><strong>break</strong></span><span class="sy0"><font color="#339933">;</font></span>                        <span class="kw1"><font color="#b1b100">case</font></span> <span class="st0"><font color="#ff0000">'-'</font></span><span class="sy0"><font color="#339933">:</font></span>                                match<span class="br0"><font color="#009900">(</font></span><span class="st0"><font color="#ff0000">'-'</font></span><span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>                                term<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="sy0"><font color="#339933">;</font></span>                                 <span class="kw3"><font color="#000066">printf</font></span><span class="br0"><font color="#009900">(</font></span> <span class="st0"><font color="#ff0000">"%s"</font></span><span class="sy0"><font color="#339933">,</font></span> compile_mode <span class="sy0"><font color="#339933">==</font></span> MODE_POSTFIX <span class="sy0"><font color="#339933">?</font></span> <span class="st0"><font color="#ff0000">"-"</font></span>                                        <span class="sy0"><font color="#339933">:</font></span> <span class="st0"><font color="#ff0000">"</font><span class="es1"><strong><font color="#000099">\t</font></strong></span><font color="#ff0000">POP B</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">POP A</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">SUB A, B</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">PUSH A</font><span class="es1"><strong><font color="#000099">\n</font></strong></span><font color="#ff0000">"</font></span><span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>                                <span class="kw2"><strong>break</strong></span><span class="sy0"><font color="#339933">;</font></span>                        <span class="kw1"><font color="#b1b100">default</font></span><span class="sy0"><font color="#339933">:</font></span>                                <span class="kw1"><font color="#b1b100">return</font></span><span class="sy0"><font color="#339933">;</font></span>                <span class="br0"><font color="#009900">}</font></span>        <span class="br0"><font color="#009900">}</font></span><span class="br0"><font color="#009900">}</font></span> <span class="kw4"><font color="#993333">int</font></span> main <span class="br0"><font color="#009900">(</font></span> <span class="kw4"><font color="#993333">int</font></span> argc<span class="sy0"><font color="#339933">,</font></span> <span class="kw4"><font color="#993333">char</font></span><span class="sy0"><font color="#339933">**</font></span> argv <span class="br0"><font color="#009900">)</font></span><span class="br0"><font color="#009900">{</font></span>        <span class="kw3"><font color="#000066">printf</font></span><span class="br0"><font color="#009900">(</font></span><span class="st0"><font color="#ff0000">"Please enter an infix-notated expression with single digits:</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">"</font></span><span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>        <span class="kw3"><font color="#000066">scanf</font></span><span class="br0"><font color="#009900">(</font></span><span class="st0"><font color="#ff0000">"%20s"</font></span><span class="sy0"><font color="#339933">,</font></span> expression<span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>         <span class="kw3"><font color="#000066">printf</font></span><span class="br0"><font color="#009900">(</font></span><span class="st0"><font color="#ff0000">"</font><span class="es1"><strong><font color="#000099">\n</font></strong></span><font color="#ff0000">Compiling to postfix-notated expression:</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\n</span><span class="es1">\t</span></font></strong><font color="#ff0000">"</font></span><span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>        compile_mode <span class="sy0"><font color="#339933">=</font></span> MODE_POSTFIX<span class="sy0"><font color="#339933">;</font></span>        pos <span class="sy0"><font color="#339933">=</font></span> <span class="nu0"><font color="#0000dd">0</font></span><span class="sy0"><font color="#339933">;</font></span>        lookahead <span class="sy0"><font color="#339933">=</font></span> <span class="sy0"><font color="#339933">*</font></span>expression<span class="sy0"><font color="#339933">;</font></span>        expr<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="sy0"><font color="#339933">;</font></span>         <span class="kw3"><font color="#000066">printf</font></span><span class="br0"><font color="#009900">(</font></span><span class="st0"><font color="#ff0000">"</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\n</span></font></strong><font color="#ff0000">Compiling to assembly-notated machine code:</font><strong><font color="#000099"><span class="es1">\n</span><span class="es1">\n</span></font></strong><font color="#ff0000">"</font></span><span class="br0"><font color="#009900">)</font></span><span class="sy0"><font color="#339933">;</font></span>        compile_mode <span class="sy0"><font color="#339933">=</font></span> MODE_ASSEMBLY<span class="sy0"><font color="#339933">;</font></span>        pos <span class="sy0"><font color="#339933">=</font></span> <span class="nu0"><font color="#0000dd">0</font></span><span class="sy0"><font color="#339933">;</font></span>        lookahead <span class="sy0"><font color="#339933">=</font></span> <span class="sy0"><font color="#339933">*</font></span>expression<span class="sy0"><font color="#339933">;</font></span>        expr<font color="#009900"><span class="br0">(</span><span class="br0">)</span></font><span class="sy0"><font color="#339933">;</font></span>         <span class="kw1"><font color="#b1b100">return</font></span> <span class="nu0"><font color="#0000dd">0</font></span><span class="sy0"><font color="#339933">;</font></span><span class="br0"><font color="#009900">}</font></span></pre></div></div>
]]>
</description>
<link>https://ameblo.jp/gachupin311/entry-11440524725.html</link>
<pubDate>Wed, 02 Jan 2013 13:29:02 +0900</pubDate>
</item>
</channel>
</rss>
