112 lines
7.4 KiB
TeX
112 lines
7.4 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{DESIGNA} \textbf{id} \texttt{,} \textit{ids} \texttt{VT} \textit{expression}} \\
|
|
\languageline{statement}{\textbf{id} \texttt{AVGE} \textit{expression}} \\
|
|
\languageline{statement}{\textbf{id} \texttt{MINVE} \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{FAC} \textit{scope}} \\
|
|
\languageline{statement}{\texttt{AETERNVM} \texttt{FAC} \textit{scope}} \\
|
|
\languageline{statement}{\texttt{PER} \textbf{id} \texttt{IN} \textit{expression} \texttt{FAC} \textit{scope}} \\
|
|
\languageline{statement}{\texttt{DONICVM} \textbf{id} \texttt{VT} \textit{expression} \texttt{VSQVE} \textit{expression} \texttt{FAC} \textit{scope}} \\
|
|
\languageline{statement}{\texttt{REDI(} \textit{optional-expressions} \texttt{)}} \\
|
|
\languageline{statement}{\texttt{ERVMPE}} \\
|
|
\languageline{statement}{\texttt{CONTINVA}} \\
|
|
\languageline{statement}{\textit{try-statement}} \\ \hline
|
|
|
|
\languageline{try-statement}{\texttt{TEMPTA} \textit{scope} \texttt{CAPE} \textbf{id} \textit{scope}} \\ \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{ALIVD} \textit{scope}} \\
|
|
\languageline{else-statement}{\texttt{ALIVD} \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} \textit{expression} \texttt{(} \textit{optional-expressions} \texttt{)}} \\
|
|
\languageline{expression}{\texttt{FVNCTIO} \texttt{(} \textit{optional-ids} \texttt{)} \texttt{VT} \textit{scope}} \\
|
|
\languageline{expression}{\textit{literal}} \\
|
|
\languageline{expression}{\textit{expression} \texttt{[} \textit{expression} \texttt{]}} \\
|
|
\languageline{expression}{\textit{expression} \texttt{[} \textit{expression} \texttt{VSQVE} \textit{expression} \texttt{]} \textnormal{\small\ (inclusive slice)}} \\
|
|
\languageline{expression}{\textit{expression} \textbf{binop} \textit{expression}} \\
|
|
\languageline{expression}{\textbf{unop} \textit{expression}} \\ \hline
|
|
\languageline{literal}{\textbf{string}} \\
|
|
\languageline{literal}{\textbf{interpolated-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{]} \textnormal{\small\ (inclusive on both ends)}} \\
|
|
\languageline{literal}{\texttt{TABVLA} \texttt{\{} \textit{optional-dict-items} \texttt{\}}} \\ \hline
|
|
|
|
\languageline{optional-dict-items}{\textit{dict-items}} \\
|
|
\languageline{optional-dict-items}{} \\ \hline
|
|
|
|
\languageline{dict-items}{\textit{expression} \texttt{VT} \textit{expression} \texttt{,} \textit{dict-items}} \\
|
|
\languageline{dict-items}{\textit{expression} \texttt{VT} \textit{expression}} \\ \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. Available modules: \texttt{FORS} (randomness), \texttt{FRACTIO} (fractions), \texttt{MAGNVM} (large integers), \texttt{SCRIPTA} (file I/O: \texttt{LEGE}, \texttt{SCRIBE}, \texttt{ADIVNGE}), \texttt{SVBNVLLA} (negative literals), \texttt{RETE} (networking: \texttt{PETE}, \texttt{PETITVR}, \texttt{AVSCVLTA}).
|
|
\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 \texttt{"} or \texttt{'} characters. Single-quoted strings are always literal. Strings support 1-based indexing (\texttt{string[I]}) and inclusive slicing (\texttt{string[I VSQVE III]}), returning single-character strings and substrings respectively.
|
|
\item \textbf{interpolated-string}: \\ A double-quoted string containing \texttt{\{}\textit{expression}\texttt{\}} segments. Each expression is evaluated and coerced to a string. Use \texttt{\{\{} and \texttt{\}\}} for literal braces.
|
|
\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{RELIQVVM} (modulo), \texttt{EST} (equality), \texttt{DISPAR} (not-equal), \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} |