From 2c7465aca4457e99441bb44d47da14291d7d779a Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Sun, 30 Aug 2015 10:58:38 +0100 Subject: [PATCH] doc/: Add more synopses. --- doc/clang.tex | 20 ++++++++++++ doc/misc.tex | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ doc/parsing.tex | 99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 214 insertions(+), 1 deletion(-) diff --git a/doc/clang.tex b/doc/clang.tex index bd1053f..52e330d 100644 --- a/doc/clang.tex +++ b/doc/clang.tex @@ -908,6 +908,26 @@ Temporary names are represented by objects which implement a simple protocol. \begin{describe}{cls}{codegen () \&key :vars :insts (:temp-index 0)} \end{describe} +%%%-------------------------------------------------------------------------- +\section{Literal C code fragments} \label{sec:clang.fragment} + +\begin{describe}{cls}{c-fragment () \&key :location :text} +\end{describe} + +\begin{describe}{gf}{c-fragment-text @ @> @} +\end{describe} + +\begin{describe}{fun} + {scan-c-fragment @ @ + @> @ @ @} +\end{describe} + +\begin{describe}{fun} + {parse-delimited-fragment @ @ @ \&key :keep-end + \nlret @ @ @} +\end{describe} + +\relax %%%----- That's all, folks -------------------------------------------------- %%% Local variables: diff --git a/doc/misc.tex b/doc/misc.tex index 2126c16..de62c8e 100644 --- a/doc/misc.tex +++ b/doc/misc.tex @@ -414,6 +414,99 @@ These symbols are defined in the @!optparse| package. %%%-------------------------------------------------------------------------- \section{Property sets} \label{sec:misc.pset} +\begin{describe}{fun}{property-key @ @> @} +\end{describe} + +\begin{describe}{gf}{decode-property @ @> @ @} +\end{describe} + +\begin{describe}{cls}{property} +\end{describe} + +\begin{describe}{fun}{propertyp @ @> @} +\end{describe} + +\begin{describe}{fun} + {make-property @ @ \&key :type :location :seenp} +\end{describe} + +\begin{describe*} + {\dhead{fun}{p-name @ @> @} + \dhead{fun}{setf (p-name @) @} + \dhead{fun}{p-value @ @> @} + \dhead{fun}{setf (p-value @) @} + \dhead{fun}{p-type @ @> @} + \dhead{fun}{setf (p-type @) @} + \dhead{fun}{p-key @ @> @} + \dhead{fun}{setf (p-key @) @} + \dhead{fun}{p-seenp @ @> @} + \dhead{fun}{setf (p-seenp @) @}} +\end{describe*} + +\begin{describe}{gf}{decode-property @ @> @ @} +\end{describe} + +\begin{describe}{gf} + {coerce-property-value @ @ @ @> @} +\end{describe} + +\begin{describe}{cls}{pset} +\end{describe} + +\begin{describe}{fun}{psetp @ @> @} +\end{describe} + +\begin{describe}{fun}{make-pset @> @} +\end{describe} + +\begin{describe}{fun}{pset-get @ @ @> @} +\end{describe} + +\begin{describe}{fun}{pset-store @ @ @> @} +\end{describe} + +\begin{describe}{fun}{pset-map @ @} +\end{describe} + +\begin{describe}{mac}{with-pset-iterator (@ @) @^*} +\end{describe} + +\begin{describe}{fun} + {store-property @ @ @ \&key :type :location + @> @} +\end{describe} + +\begin{describe}{fun} + {get-property @ @ @ \&optional @ + @> @ @} +\end{describe} + +\begin{describe}{fun} + {add-property @ @ @ \&key :type :location + @> @} +\end{describe} + +\begin{describe}{fun}{make-property-set \&rest @ @> @} +\end{describe} + +\begin{describe}{gf}{property-set @ @> @} +\end{describe} + +\begin{describe}{fun}{check-unused-properties @} +\end{describe} + +\begin{describe}{mac} + {default-slot-from-property + (@ @ @[@@]) \\ \ind\ind + (@ @ @ @[@ @^*@]) \- \\ + @^*} +\end{describe} + +\begin{describe}{fun} + {parse-property-set @ + @> @ @ @} +\end{describe} + %%%-------------------------------------------------------------------------- \section{Miscellaneous translator features} \label{sec:misc.pset} @@ -429,6 +522,9 @@ These symbols are defined in the @!optparse| package. \begin{describe}{fun}{exercise} \end{describe} +\begin{describe}{fun}{sod-frontend:main} +\end{describe} + %%%----- That's all, folks -------------------------------------------------- %%% Local variables: diff --git a/doc/parsing.tex b/doc/parsing.tex index e39a9e9..58959c0 100644 --- a/doc/parsing.tex +++ b/doc/parsing.tex @@ -654,11 +654,108 @@ file-location protocols. \&key :scanner} \end{describe} -%% FIXME parser-expr +\begin{describe}{gf}{push-operator @ @} +\end{describe} + +\begin{describe}{gf}{push-value @ @} +\end{describe} + +\begin{describe}{gf}{apply-operator @ @} +\end{describe} + +\begin{describe}{gf}{operator-push-action @ @} +\end{describe} + +\begin{describe}{parseform} + {expr \=(@[[ :nestedp @ @]]) \+ \\ + @ @ + @ @} +\end{describe} + +\begin{describe}{gf}{operator-left-precedence @ @> @} +\end{describe} + +\begin{describe}{gf}{operator-right-precedence @ @> @} +\end{describe} + +\begin{describe}{gf}{operator-associativity @ @> @} +\end{describe} + +\begin{describe}{cls}{prefix-operator () \&key} +\end{describe} + +\begin{describe}{cls}{simple-operator () \&key :name :function} +\end{describe} + +\begin{describe}{cls} + {simple-unary-operator (simple-operator) \&key :name :function} +\end{describe} + +\begin{describe*} + {\quad\=\kill + \dhead{cls}{simple-binary-operator (simple-operator) \\ \> + \&key :name :function :lprec :rprec :associativity} + \dhead{cls}{simple-postfix-operator (simple-unary-operator) \\ \> + \&key :name :function :lprec :rprec} + \dhead{cls}{simple-prefix-operator + (prefix-operator simple-unary-operator) \\ \> + \&key :name :function :rprec}} +\end{describe*} + +\begin{describe*} + {\dhead{mac}{preop @ (@ @) + @^* + @> @} + \dhead{mac}{postop @ + (@ @ @[[ :rprec @ @]]) + @^* + @> @} + \dhead{mac}{binop @ (@ @ @ @) + @^* + @> @}} +\end{describe*} + +\begin{describe*} + {\dhead{cls}{parenthesis () \&key :tag} + \dhead{cls}{open-parenthesis (parenthesis prefix-operator) \&key :tag} + \dhead{cls}{close-parenthesis (parenthesis) \&key :tag}} +\end{describe*} + +\begin{describe*} + {\dhead{fun}{lparen @ @> @} + \dhead{fun}{rparen @ @> @}} +\end{describe*} %%%------------------------------------------------------------------------- \section{Lexical analyser} +\begin{describe}{cls} + {sod-token-scanner (token-scanner) + \&key :filename (:line 1) (:column 0) :char-scanner} +\end{describe} + +\begin{describe}{fun}{define-indicator @ @} +\end{describe} + +\begin{describe}{fun}{syntax-error @ @ \&key :continuep} +\end{describe} + +\begin{describe}{fun} + {lexer-error @ @ @} +\end{describe} + +\begin{describe}{parseform} + {skip-until (@[[ :keep-end @ @]]) @^*} +\end{describe} + +\begin{describe}{parseform}{error () @ @} +\end{describe} + +\begin{describe}{fun} + {scan-comment @ + @> @ @ @} +\end{describe} + %%%----- That's all, folks -------------------------------------------------- %%% Local variables: -- 2.11.0