93 lines
5.1 KiB
TeX
93 lines
5.1 KiB
TeX
\documentclass[a4paper]{article}
|
|
\usepackage[margin=1in]{geometry}
|
|
\usepackage{fontspec}
|
|
|
|
\setmonofont[Scale=0.7]{Hurmit Nerd Font Mono}
|
|
|
|
\newcommand{\languageline}[2]{%
|
|
\textit{#1} & $\to$ & #2
|
|
}
|
|
|
|
\begin{document}
|
|
\begin{table}[ht!]
|
|
\begin{center}
|
|
\begin{tabular}{|lcl|}
|
|
\hline
|
|
\multicolumn{3}{|c|}{\textbf{Top-level}} \\ \hline
|
|
\languageline{program}{\textit{optional-newline} \textit{module-calls} \textit{statements}} \\ \hline
|
|
|
|
\languageline{module-calls}{\textit{module-call} \textbf{newline} \textit{module-calls}} \\
|
|
\languageline{module-calls}{} \\ \hline
|
|
|
|
\languageline{module-call}{\texttt{CUM} \textbf{module-name}} \\ \hline
|
|
|
|
\languageline{statements}{\textit{statement} \textbf{newline} \textit{statements}} \\
|
|
\languageline{statements}{} \\ \hline
|
|
|
|
\languageline{optional-newline}{\textbf{newline}} \\
|
|
\languageline{optional-newline}{} \\ \hline \hline
|
|
|
|
\multicolumn{3}{|c|}{\textbf{Statements}} \\ \hline
|
|
\languageline{statement}{\textit{expression}} \\
|
|
\languageline{statement}{\texttt{DESIGNA} \textbf{id} \texttt{VT} \textit{expression}} \\
|
|
\languageline{statement}{\texttt{DEFINI} \textbf{id} \texttt{(} \textit{optional-ids} \texttt{)} \texttt{VT} \textit{scope}} \\
|
|
\languageline{statement}{\textit{if-statement}} \\
|
|
\languageline{statement}{\texttt{DVM} \textit{expression} \texttt{FACE} \textit{scope}} \\
|
|
\languageline{statement}{\texttt{PER} \textbf{id} \texttt{IN} \textit{expression} \texttt{FACE} \textit{scope}} \\
|
|
\languageline{statement}{\texttt{DONICVM} \textbf{id} \texttt{VT} \textit{expression} \texttt{VSQVE} \textit{expression} \texttt{FACE} \textit{scope}} \\
|
|
\languageline{statement}{\texttt{REDI(} \textit{optional-expressions} \texttt{)}} \\
|
|
\languageline{statement}{\texttt{ERVMPE}} \\ \hline
|
|
|
|
\languageline{if-statement}{\texttt{SI} \textit{expression} \texttt{TVNC} \textit{scope}} \\
|
|
\languageline{if-statement}{\texttt{SI} \textit{expression} \texttt{TVNC} \textit{scope} \textit{optional-newline} \textit{else-statement}} \\ \hline
|
|
|
|
\languageline{else-statement}{\texttt{ALVID} \textit{scope}} \\
|
|
\languageline{else-statement}{\texttt{ALVID} \textit{if-statement}} \\ \hline
|
|
|
|
\languageline{scope}{\textit{optional-newline} \texttt{\{} \textbf{newline} \textit{statements} \texttt{\}}} \\ \hline \hline
|
|
|
|
\multicolumn{3}{|c|}{\textbf{Expressions}} \\ \hline
|
|
\languageline{expression}{\texttt{(} \textit{expression} \texttt{)}} \\
|
|
\languageline{expression}{\textbf{id}} \\
|
|
\languageline{expression}{\textbf{builtin} \texttt{(} \textit{optional-expressions} \texttt{)}} \\
|
|
\languageline{expression}{\texttt{INVOCA} \textbf{id} \texttt{(} \textit{optional-expressions} \texttt{)}} \\
|
|
\languageline{expression}{\textit{literal}} \\
|
|
\languageline{expression}{\textit{expression} \texttt{[} \textit{expression} \texttt{]}} \\
|
|
\languageline{expression}{\textit{expression} \textbf{binop} \textit{expression}} \\
|
|
\languageline{expression}{\textbf{unop} \textit{expression}} \\ \hline
|
|
\languageline{literal}{\textbf{string}} \\
|
|
\languageline{literal}{\textbf{numeral}} \\
|
|
\languageline{literal}{\textbf{bool}} \\
|
|
\languageline{literal}{\texttt{[} \textit{optional-expressions} \texttt{]}} \\
|
|
\languageline{literal}{\texttt{[} \textit{expression} \texttt{VSQVE} \textit{expression} \texttt{]}} \\ \hline \hline
|
|
|
|
\multicolumn{3}{|c|}{\textbf{Lists}} \\ \hline
|
|
\languageline{optional-ids}{ids} \\
|
|
\languageline{optional-ids}{} \\ \hline
|
|
|
|
\languageline{ids}{\textbf{id}, \textit{ids}} \\
|
|
\languageline{ids}{\textbf{id}} \\ \hline
|
|
|
|
\languageline{optional-expressions}{expressions} \\
|
|
\languageline{optional-expressions}{} \\ \hline
|
|
|
|
\languageline{expressions}{\textit{expression}, \textit{expressions}} \\
|
|
\languageline{expressions}{\textit{expression}} \\ \hline
|
|
\end{tabular}
|
|
\end{center}
|
|
\end{table}
|
|
|
|
\newpage
|
|
\begin{itemize}
|
|
\item \textbf{newline}: \\ Newlines are combined, so a single newline is the same as multiple.
|
|
\item \textbf{module-name}: \\ Modules are flags given to the interpreter/compiler, to let it know you want to be using certain rules, functions, or features.
|
|
\item \textbf{id}: \\ Variable. Can only consist of lowercase characters and underscores, but not the letters j, u, or w.
|
|
\item \textbf{builtin}: \\ Builtin functions are uppercase latin words.
|
|
\item \textbf{string}: \\ Any text encased in " characters.
|
|
\item \textbf{numeral}: \\ Roman numerals consisting of the uppercase characters I, V, X, L, C, D, and M. Can also include underscore if the module MAGNVM.
|
|
\item \textbf{bool}: \\ VERITAS or FALSITAS.
|
|
\item \textbf{binop}: \\ Binary operators: \texttt{+}, \texttt{-}, \texttt{*}, \texttt{/}, \texttt{EST} (equality), \texttt{MINVS} (<), \texttt{PLVS} (>), \texttt{ET} (and), \texttt{AVT} (or), \texttt{:} (string concatenation).
|
|
\item \textbf{unop}: \\ Unary operators: \texttt{-} (negation), \texttt{NON} (boolean not).
|
|
\end{itemize}
|
|
|
|
\end{document} |