macroprocessor doc: update for microprocessing functions

issue#70
Houtan Bastani 2018-07-09 18:25:39 +02:00
parent 7baee73126
commit dfb8c2f30e
1 changed files with 17 additions and 11 deletions

View File

@ -12,7 +12,7 @@
\author{Sébastien Villemot}
%\pgfdeclareimage[height=0.6cm]{logo}{logo-ofce}
\institute{CEPREMAP}
\date{June 6, 2018}
\date{July 9, 2018}
\AtBeginSection[]
{
@ -95,12 +95,13 @@
\frametitle{Variables}
\begin{itemize}
\item The macro processor has its own list of variables which are different than model variables and MATLAB/Octave variables
\item There are 4 types of macro-variables:
\item There are 5 types of macro-variables:
\begin{itemize}
\item integer
\item string (declared between \textit{double} quotes)
\item integer array
\item string array
\item string function
\end{itemize}
\item No boolean type:
\begin{itemize}
@ -157,17 +158,21 @@
The value of a macro-variable can be defined with the \verb+@#define+ directive.
\begin{block}{Syntax}
\verb+@#define +\textit{variable\_name}\verb+ = +\textit{expression}
\verb+@#define +\textit{variable\_name}\verb+ = +\textit{expression}\\
\verb+@#define +\textit{function\_name}(\textit{arg1}, [\textit{arg2}, ...])\verb+ = +\textit{string\_expression}
\end{block}
\begin{block}{Examples}
\begin{verbatim}
@#define x = 5 // Integer
@#define y = "US" // String
@#define v = [ 1, 2, 4 ] // Integer array
@#define w = [ "US", "EA" ] // String array
@#define z = 3 + v[2] // Equals 5
@#define t = ("US" in w) // Equals 1 (true)
@#define x = 5 // Integer
@#define y = "US" // String
@#define v = [ 1, 2, 4 ] // Integer array
@#define w = [ "US", "EA" ] // String array
@#define z = 3 + v[2] // Equals 5
@#define t = ("US" in w) // Equals 1 (true)
@#define s = "@{y}" // Equals "US"
@#define f(x) = " + @{x} + @{y}" // A function "f(x)" equal
// to " + @{x} + US"
\end{verbatim}
\end{block}
\end{frame}
@ -179,16 +184,17 @@
\begin{verbatim}
@#define x = [ "B", "C" ]
@#define i = 2
@#define f(x) = " + @{x}"
model;
A = @{x[i]};
A = @{x[i] + f("D")};
end;
\end{verbatim}
\end{block}
\begin{block}{After macro-processing}
\begin{verbatim}
model;
A = C;
A = C + D;
end;
\end{verbatim}
\end{block}