X-Git-Url: https://ruin.nu/git/?p=proglang.git;a=blobdiff_plain;f=Docsyntax.tex;h=f8ad812f68132a4a546510dfa5330591f4c81986;hp=89c1a0f72a0fd971c506d65c77b011cc581914a4;hb=HEAD;hpb=6103c0359b95557566aa9154efa5bcd4d9c996f6 diff --git a/Docsyntax.tex b/Docsyntax.tex index 89c1a0f..f8ad812 100644 --- a/Docsyntax.tex +++ b/Docsyntax.tex @@ -42,19 +42,20 @@ The reserved words used in syntax are the following: \\ \begin{tabular}{lll} {\reserved{bool}} &{\reserved{else}} &{\reserved{false}} \\ {\reserved{if}} &{\reserved{int}} &{\reserved{print}} \\ -{\reserved{readBool}} &{\reserved{readInt}} &{\reserved{true}} \\ -{\reserved{while}} & & \\ +{\reserved{readBool}} &{\reserved{readInt}} &{\reserved{return}} \\ +{\reserved{true}} &{\reserved{while}} & \\ \end{tabular}\\ The symbols used in syntax are the following: \\ \begin{tabular}{lll} -{\symb{{$=$}}} &{\symb{;}} &{\symb{\{}} \\ -{\symb{\}}} &{\symb{(}} &{\symb{)}} \\ +{\symb{;}} &{\symb{\{}} &{\symb{\}}} \\ +{\symb{{$=$}}} &{\symb{(}} &{\symb{)}} \\ {\symb{{$+$}{$+$}}} &{\symb{{$-$}{$-$}}} &{\symb{{$-$}}} \\ -{\symb{{$<$}}} &{\symb{{$<$}{$=$}}} &{\symb{{$>$}}} \\ -{\symb{{$>$}{$=$}}} &{\symb{{$=$}{$=$}}} &{\symb{!{$=$}}} \\ -{\symb{{$+$}}} &{\symb{*}} &{\symb{/}} \\ +{\symb{!}} &{\symb{,}} &{\symb{{$<$}}} \\ +{\symb{{$<$}{$=$}}} &{\symb{{$>$}}} &{\symb{{$>$}{$=$}}} \\ +{\symb{{$=$}{$=$}}} &{\symb{!{$=$}}} &{\symb{{$+$}}} \\ +{\symb{*}} &{\symb{/}} & \\ \end{tabular}\\ \subsection*{Comments} @@ -72,14 +73,24 @@ All other symbols are terminals.\\ \end{tabular}\\ \begin{tabular}{lll} -{\nonterminal{Stm}} & {\arrow} &{\nonterminal{Type}} {\nonterminal{Ident}} {\terminal{{$=$}}} {\nonterminal{Exp}} {\terminal{;}} \\ - & {\delimit} &{\nonterminal{Type}} {\nonterminal{Ident}} {\terminal{;}} \\ - & {\delimit} &{\nonterminal{Exp}} {\terminal{;}} \\ +{\nonterminal{Type}} & {\arrow} &{\terminal{int}} \\ + & {\delimit} &{\terminal{bool}} \\ +\end{tabular}\\ + +\begin{tabular}{lll} +{\nonterminal{Program}} & {\arrow} &{\nonterminal{ListFuncStm}} \\ +\end{tabular}\\ + +\begin{tabular}{lll} +{\nonterminal{Stm}} & {\arrow} &{\nonterminal{Exp}} {\terminal{;}} \\ & {\delimit} &{\terminal{\{}} {\nonterminal{ListStm}} {\terminal{\}}} \\ - & {\delimit} &{\terminal{if}} {\terminal{(}} {\nonterminal{Exp}} {\terminal{)}} {\nonterminal{Stm}} \\ - & {\delimit} &{\terminal{if}} {\terminal{(}} {\nonterminal{Exp}} {\terminal{)}} {\nonterminal{Stm}} {\terminal{else}} {\nonterminal{Stm}} \\ + & {\delimit} &{\nonterminal{Type}} {\nonterminal{Ident}} {\terminal{{$=$}}} {\nonterminal{Exp}} {\terminal{;}} \\ + & {\delimit} &{\nonterminal{Type}} {\nonterminal{Ident}} {\terminal{;}} \\ & {\delimit} &{\terminal{while}} {\terminal{(}} {\nonterminal{Exp}} {\terminal{)}} {\nonterminal{Stm}} \\ + & {\delimit} &{\terminal{if}} {\terminal{(}} {\nonterminal{Exp}} {\terminal{)}} {\nonterminal{Stm}} {\terminal{else}} {\nonterminal{Stm}} \\ + & {\delimit} &{\terminal{if}} {\terminal{(}} {\nonterminal{Exp}} {\terminal{)}} {\nonterminal{Stm}} \\ & {\delimit} &{\terminal{print}} {\nonterminal{Exp}} {\terminal{;}} \\ + & {\delimit} &{\terminal{return}} {\nonterminal{Exp}} {\terminal{;}} \\ \end{tabular}\\ \begin{tabular}{lll} @@ -103,10 +114,12 @@ All other symbols are terminals.\\ & {\delimit} &{\nonterminal{Ident}} {\terminal{{$-$}{$-$}}} \\ & {\delimit} &{\nonterminal{Ident}} \\ & {\delimit} &{\nonterminal{Integer}} \\ - & {\delimit} &{\terminal{{$-$}}} {\nonterminal{Exp3}} \\ & {\delimit} &{\nonterminal{Bool}} \\ + & {\delimit} &{\terminal{{$-$}}} {\nonterminal{Exp3}} \\ + & {\delimit} &{\terminal{!}} {\nonterminal{Exp3}} \\ & {\delimit} &{\terminal{readInt}} \\ & {\delimit} &{\terminal{readBool}} \\ + & {\delimit} &{\nonterminal{Ident}} {\terminal{(}} {\nonterminal{ListExp}} {\terminal{)}} \\ & {\delimit} &{\terminal{(}} {\nonterminal{Exp}} {\terminal{)}} \\ \end{tabular}\\ @@ -116,7 +129,38 @@ All other symbols are terminals.\\ \end{tabular}\\ \begin{tabular}{lll} -{\nonterminal{Stms}} & {\arrow} &{\nonterminal{ListStm}} \\ +{\nonterminal{ListExp}} & {\arrow} &{\emptyP} \\ + & {\delimit} &{\nonterminal{Exp}} \\ + & {\delimit} &{\nonterminal{Exp}} {\terminal{,}} {\nonterminal{ListExp}} \\ +\end{tabular}\\ + +\begin{tabular}{lll} +{\nonterminal{Decl}} & {\arrow} &{\nonterminal{Type}} {\nonterminal{Ident}} \\ +\end{tabular}\\ + +\begin{tabular}{lll} +{\nonterminal{ListDecl}} & {\arrow} &{\emptyP} \\ + & {\delimit} &{\nonterminal{Decl}} \\ + & {\delimit} &{\nonterminal{Decl}} {\terminal{,}} {\nonterminal{ListDecl}} \\ +\end{tabular}\\ + +\begin{tabular}{lll} +{\nonterminal{Func}} & {\arrow} &{\nonterminal{Type}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{ListDecl}} {\terminal{)}} {\terminal{\{}} {\nonterminal{ListStm}} {\terminal{\}}} \\ +\end{tabular}\\ + +\begin{tabular}{lll} +{\nonterminal{ListFunc}} & {\arrow} &{\emptyP} \\ + & {\delimit} &{\nonterminal{Func}} {\nonterminal{ListFunc}} \\ +\end{tabular}\\ + +\begin{tabular}{lll} +{\nonterminal{FuncStm}} & {\arrow} &{\nonterminal{Stm}} \\ + & {\delimit} &{\nonterminal{Func}} \\ +\end{tabular}\\ + +\begin{tabular}{lll} +{\nonterminal{ListFuncStm}} & {\arrow} &{\emptyP} \\ + & {\delimit} &{\nonterminal{FuncStm}} {\nonterminal{ListFuncStm}} \\ \end{tabular}\\ \begin{tabular}{lll} @@ -144,11 +188,6 @@ All other symbols are terminals.\\ & {\delimit} &{\nonterminal{Op0}} \\ \end{tabular}\\ -\begin{tabular}{lll} -{\nonterminal{Type}} & {\arrow} &{\terminal{int}} \\ - & {\delimit} &{\terminal{bool}} \\ -\end{tabular}\\ - \end{document}