\chapter{Comentarios nos guións}
\label{chap:comments}

Cando un guión fai algo que non é obvio, é unha boa idea engadir
comentarios que expliquen o que está a acontecer. Isto é útil sobre
todo se te propós compartir o guión cos demais, pero tamén o é
como un recordatorio para un mesmo --- cando volves retomar un guión
algúns meses máis tarde e te preguntas que se supoñía que facía.

O mecanismo de facer comentarios tamén pode ser de axuda cando estás
desenvolvendo un guión. Pois pode chegar un punto no que desexas
executar un guión, pero saltándote a execución dunha parte do mesmo.
Obviamente, podes eliminar a parte que desexas saltarte, pero en troques
de perder esa sección podes ``poñerlle un comentario'' de xeito que
\app{GRETL} non a teña en conta.

Admítense dúas clases de comentarios nos guións de \app{GRETL}.
O máis simple é este:

\begin{itemize}
\item Cando se atopa unha marca de cancelo, \texttt{\#}, nun guión de
  \app{GRETL}, trátase todo o que está desde ese lugar ata o final da
  liña considerada como un comentario, e se omite.
\end{itemize}

Se queres ``comentar'' varias liñas utilizando esta modalidade, terás
que colocar unha marca de cancelo ao principio de cada unha desas liñas.

A segunda clase de comentarios segue o modelo da linguaxe C de programación:

\begin{itemize}
\item Cando se atopa nun guión a secuencia \texttt{/*}, todo o que a
  segue trátase como un comentario ata que se atope a secuencia
  \texttt{*/}.
\end{itemize}

Os comentarios desta clase poden estenderse por varias liñas. Utilizando
esta modalidade é doado engadir un texto explicativo extenso, ou conseguir
que \app{GRETL} omita bloques considerables de instrucións. Como en C,
os comentarios deste tipo non se poden aniñar.

Como interactúan estes dous xeitos de facer comentarios? Podes imaxinar
que \app{GRETL} comeza no principio dun guión, e que intenta decidir en
cada punto se debe ou non debe estar na ``modalidade de omisión''. Cando
se fai isto, séguense as seguintes regras:

\begin{itemize}
\item Se non estamos na modalidade de omisión, entón \texttt{\#} nos coloca
  na modalidade de omisión ata o final da liña vixente.
\item Se non estamos na modalidade de omisión, entón \texttt{/*} nos coloca
  na modalidade de omisión ata que se atope \texttt{*/}.
\end{itemize}

Isto quere dicir que cada clase de comentario pode estar enmascarada pola outra.

\begin{itemize}
\item Se \texttt{/*} segue a \texttt{\#} nunha determinada liña que non
  comeza na modalidade de omisión, entón non hai nada de especial en canto
  a \texttt{/*}; é só unha parte dun comentario de estilo \texttt{\#}.
\item Se aparece \texttt{\#} cando xa estamos na modalidade de omisión,
  iso é só unha parte máis dun comentario.
\end{itemize}

A continuación temos algúns exemplos.
%
\begin{code}
/* Comentario de varias liñas
   # Ola
   # Ola */
\end{code}
%
No exemplo de arriba, as marcas de cancelo non teñen nada de especial; en
concreto, a marca de cancelo da terceira liña non evita que ese comentario
de varias liñas remate en \texttt{*/}.
%
\begin{code}
# Comentario dunha única liña /* Ola
\end{code}
%
Supoñendo que non estamos na modalidade de omisión antes da liña que se amosa
arriba, esta indica un comentario dunha única liña: o \texttt{/*} está
enmascarado, e non abre un comentario de varias liñas.

Podes engadir un comentario a unha instrución:
%
\begin{code}
ols 1 0 2 3 # Estimar o modelo de partida
\end{code}
%
Exemplo de ``comentario'':
%
\begin{code}
/*
# Imos saltarnos isto polo momento
ols 1 0 2 3 4
omit 3 4
*/
\end{code}
%
