X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=spec%2Fsm%2Fparser.tex;h=2bd3382c40d00c974768da381725c38300e6b812;hb=3ca80cda379741f8e678d70a0085f686b62d592d;hp=b02b747e3b2f51a1249c8892281acd92ce0f1a17;hpb=06c233145d35c8d476d66599c18bc041a8033bf4;p=hwmod.git diff --git a/spec/sm/parser.tex b/spec/sm/parser.tex index b02b747..2bd3382 100644 --- a/spec/sm/parser.tex +++ b/spec/sm/parser.tex @@ -6,48 +6,54 @@ \begin{document} -\begin{psmatrix}[mnode=oval, colsep=1.91cm, rowsep=1cm] +\begin{psmatrix}[mnode=oval, colsep=1.95cm, rowsep=1cm] [mnode=R,name=vars]{\shortstack[l]{int s, z, c,\\\, strich, punkt;\\opcode aktop,opp;}} & -[name=calc]{\shortstack{\textbf{calc}\\z:=z*10\\+(c-'0');}} & -[name=null]{\shortstack{\textbf{null}\\aktop:=DONE;}} \\ +[name=int]{\shortstack{\textbf{int}\\z:=z*10\\+(c-'0');}} & +[name=blank]{\shortstack{\textbf{blank}}} \\ %% [mnode=R,name=res]{sys\_res} & [name=sign]{\shortstack{\textbf{sign}\\s:=-1;}} & -[name=alu]{ - \shortstack{ - \textbf{ALU}\\ - siehe Codeschnipsel - } -} \\ +[name=null]{\shortstack{\textbf{null}\\aktop:=DONE;}} \\ %% [name=idle]{\shortstack{\textbf{idle}\\strich:=0;\\punkt:=1;\\opp:=NOP;}} & [name=read]{\shortstack{\textbf{read char}\\z:=0;\\s:=1;}} & -[name=done]{\shortstack{\textbf{done}}} \\ +[name=calc]{ + \shortstack{ + \textbf{calc}\\ + siehe Listing + } +} \\ %% [mnode=R,name=void]{} & -[name=err]{\shortstack{\textbf{error}}} \\ +[name=err]{\shortstack{\textbf{error}}} & +[name=done]{\shortstack{\textbf{done}}} \\ \end{psmatrix} \psset{arrows=->, shortput=nab} \ncline[linestyle=dotted]{res}{idle} \ncline[linestyle=dotted]{void}{err} -\ncarc[arcangle=24]{done}{idle} +\ncarc[arcangle=0]{done}{idle} \ncarc[arcangle=0]{err}{idle} \ncarc[arcangle=0]{idle}{read}\ncput*[npos=.50]{do\_it$\uparrow$} \nccurve[angleA=45,angleB=75,ncurvA=2,ncurvB=2]{read}{read}\ncput*{' '} \ncarc[arcangle=0]{read}{sign}\ncput*[npos=.50]{'-'} -\ncarc[arcangle=0]{sign}{calc} -\ncarc[arcangle=50]{read}{calc}\ncput*[npos=.35]{c = '0'\dots{}'9'} -\nccircle[angleA=-20]{calc}{.78cm}\ncput*[npos=0.39]{c = '0'\dots{}'9'} -\nccircle[angleA=80,angleB=0,loopsize=0]{calc}{.66cm}\ncput*{' '} +\ncarc[arcangle=0]{sign}{int} +\ncarc[arcangle=50]{read}{int}\ncput*[npos=.35]{c = '0'\dots{}'9'} +\nccircle[angleA=0]{int}{.78cm}\ncput*[npos=0.5]{c = '0'\dots{}'9'} + +\ncarc[arcangle=15]{int}{blank}\ncput*[npos=.50]{' '} +\nccircle[angleA=0]{blank}{.70cm}\ncput*[npos=0.5]{' '} + +\ncarc[arcangle=67]{blank}{calc}\ncput*[npos=.80]{aktop = '+','-','*','/'} +\ncarc[arcangle=0]{blank}{null}\ncput*[npos=.50]{aktop = '\textbackslash 0'} -\ncarc[arcangle=0]{calc}{alu}\ncput*[npos=.50]{aktop = '+','-','*','/'} -\ncarc[arcangle=0]{calc}{null}\ncput*[npos=.50]{aktop = '\textbackslash 0'} -\ncarc[arcangle=0]{null}{alu} +\ncarc[arcangle=0]{int}{calc}\ncput*[npos=.70]{aktop = '+','-','*','/'} +\ncarc[arcangle=0]{int}{null}\ncput*[npos=.50]{aktop = '\textbackslash 0'} +\ncarc[arcangle=0]{null}{calc} -\ncarc[arcangle=0]{alu}{read}\ncput*[npos=.50]{calc\_done$\uparrow$} -\ncarc[arcangle=0]{alu}{done}\ncput*[npos=.50]{aktop == DONE} +\ncarc[arcangle=0]{calc}{read}\ncput*[npos=.45]{else} +\ncarc[arcangle=0]{calc}{done}\ncput*[npos=.50]{aktop = DONE} \end{document}