%!TEX root = report.tex % \chapter{Diderot Syntax} \section{Notation} We write \kw{symbol} for keywords and punctuation symbols, \term{Terminal} for terminal symbols, and \nt{Nonterminal} for nonterminal symbols. We use the following conventions: \begin{Grammar} \begin{Rules}{Nonterminal} \RHS[For an optional \nt{A}.]{\OPT{\nt{A}}} \RHS[For zero or more \nt{A}s.]{\LIST{\nt{A}}} \RHS[For one or more \nt{A}s.]{\LISTONE{\nt{A}}} \RHS[For an optional \nt{A} \nt{B} pair.]{\OPTGRP{\nt{A} \nt{B}}} \RHS[For zero or more \nt{A} \nt{B} pairs.]{\LISTGRP{\nt{A} \nt{B}}} \RHS[For one or more \nt{A} \nt{B} pairs.]{\LISTONEGRP{\nt{A} \nt{B}}} \end{Rules} \end{Grammar} \section{Lexical issues} \section{Reserved symbols and keywords} \section{Collected syntax} \begin{Grammar}[anchors] \ProgramRULES{} \DeclarationRULES{} \InputDeclRULES{} \ActorDeclRULES{} \ParamsRULES{} \ParamRULES{} \ActorStateDeclRULES{} \ActorMethodRULES{} \BlockRULES{} \StmtRULES{} \VarDeclRULES{} \TypeRULES{} \ValueTypeRULES{} \DimensionsRULES{} \CoordinationDeclRULES{} \ArrayRULES{} \CollectionRULES{} \CreateRULES{} \IterationsRULES{} \IterationRULES{} \ExprRULES{} \AndExprRULES{} \CmpExprRULES{} \AddExprRULES{} \MulExprRULES{} \PrefixExprRULES{} \SelExprRULES{} \AtomExpRULES{} \ArgumentsRULES{} \CmpOpRULES{} \AddOpRULES{} \MulOpRULES{} \end{Grammar}%