143 lines
4.9 KiB
Plaintext
143 lines
4.9 KiB
Plaintext
/*
|
||
* $Id$
|
||
*/
|
||
|
||
/*
|
||
* Las siguientes partes son derechos adquiridos de sus autores individuales.
|
||
* www - http://www.harbour-project.org
|
||
*
|
||
* Copyright 2001
|
||
* Documentación en Ingl‚s de: cmdline.txt
|
||
*
|
||
* Copyright 2002 Alejandro de G rate <alex_degarate@hotmail.com>
|
||
* Documentaci¢n en Espa¤ol de: cmdline.txt
|
||
*
|
||
* Vea doc/license.txt por los t‚rminos de la licencia.
|
||
*
|
||
*/
|
||
|
||
/* $DOC$
|
||
* $FUNCNAME$
|
||
* Linea de Comandos
|
||
* $CATEGORY$
|
||
* Documento
|
||
* $ONELINER$
|
||
* Opciones del Compilador
|
||
* $DESCRIPTION$
|
||
* Esta especificaci¢n sirve para CLIPPERCMD, HARBOURCMD, el compilador
|
||
* Harbour y las directivas #pragma en el c¢digo fuente.
|
||
*
|
||
* La l¡nea de comando siempre predomina sobre las variables de entorno.
|
||
*
|
||
* Note que algunos switches no son aceptados en variables de entorno,
|
||
* y algunos otros en #pragmas.
|
||
*
|
||
* Primero el analizador (parser) deber¡a comenzar saltando a trav‚s
|
||
* de todos los tokens en la cadena separadas por espacios en blanco.
|
||
* (¢ solo ir a trav‚s de todos los argv[])
|
||
*
|
||
* 1.) Si el token comienza con "-", este debe ser tratado como un
|
||
* un nuevo estilo de switch .
|
||
*
|
||
* Uno ¢ m s caracteres switch pueden seguir a ‚ste. El signo "-"
|
||
* dentro del token apaga el switch.
|
||
*
|
||
* Si el switch tiene un argumento, todos los caracteres siguientes son
|
||
* tratados como parte del argumento:
|
||
*
|
||
* El signo "/" n tiene significado especial aqui.
|
||
*
|
||
* <table>
|
||
* Switch Opci¢n resultante
|
||
*
|
||
* -wn ( W N )
|
||
* -w-n ( !W N )
|
||
* -wi/harbour/include/ ( W I=/harbour/include/ )
|
||
* -wi/harbour/include/n ( W I=/harbour/include/n )
|
||
* -wes0n ( W ES=0 N )
|
||
* -wen ( W [invalid switch: e] N )
|
||
* -wesn ( W ES=default(0) N )
|
||
* -wses ( W S ES=default(0) )
|
||
* -wess ( W ES=default(0) S )
|
||
* - ( [invalid switch] )
|
||
* -w-n-p ( !W !N P )
|
||
* -w-n-p- ( !W !N !P )
|
||
* -w- -w -w- ( finally: !W )
|
||
* </table>
|
||
*
|
||
*
|
||
* 2.) Si el token comienza con "/", este debe ser tratado como un
|
||
* switch de compatibilidad.
|
||
*
|
||
* El analizador revisa el token por el pr¢ximo signo "/", o EOS
|
||
* (End Of String = fin de linea) y trata la cadena resultante
|
||
* como un s¢lo switch.
|
||
*
|
||
* Esto significa que si un switch con un argumento conteniendo el
|
||
* signo "/" tiene algunas limitaciones.
|
||
* Esto puede ser resuelto permitiendo el uso de caracteres comillas.
|
||
* Esto es mayormente un problema en sistemas que usan "/" como un
|
||
* separador de path.
|
||
*
|
||
*
|
||
* El signo "-" n tiene significado especial aqu¡, ‚ste no puede ser
|
||
* usado para deshabilitar un switch.
|
||
*
|
||
* <table>
|
||
* Switch Opci¢n resultante
|
||
*
|
||
* /w/n ( W N )
|
||
* /wo/n ( [invalid switch: wo] N )
|
||
* /ihello/world/ ( I=hello [invalid switch: world]
|
||
* [invalid switch: /] )
|
||
* /i"hello/world/"/w ( I=hello/world/ W )
|
||
* /ihello\world\ ( I=hello\world\ )
|
||
* </table>
|
||
*
|
||
*
|
||
* 3.) Si el token comienza con otra cosa, ‚ste deber¡a ser saltado.
|
||
*
|
||
* Los switches de Harbour son siempre insensibles a las mayúsculas.
|
||
*
|
||
* En la l¡nea de comandos de Harbour los dos estilos pueden ser usados
|
||
* conjuntamente:
|
||
*
|
||
* HARBOUR -wnes2 /gc0/q0 -ic:\hello
|
||
*
|
||
* Excepciones:
|
||
*
|
||
* - El manejo del switch indocumentado /CREDIT en la l¡nea de comandos
|
||
* de Harbour es inusual, revise el c¢digo actual por esto.
|
||
*
|
||
* - El analisis de los par metros en la l¡nea de comandos de CLIPPER,
|
||
* HARBOUR y aplicaciones de Harbour, son cosas distintas, vea
|
||
* cmdarg.c por una nota.
|
||
*
|
||
* Notas:
|
||
*
|
||
* - En toda ocurrencia donde el path es aceptado, Harbour deber¡a
|
||
* manejar el caracter doble comillas (") para especificar un path
|
||
* conteniendo espacios, signo negativo, barras u otros caracteres
|
||
* con un significado especial.
|
||
*
|
||
* /i"c:/hello/" </par>
|
||
* -i"c:/hello-n" </par>
|
||
* /i"c:/program files/" </par>
|
||
* -i"c:/program files/" </par>
|
||
*
|
||
* <fixed>
|
||
* S¢lo algunos ejemplos para las varias formas aceptadas:
|
||
* //F20 == /F20 == F20 == F:20 == F20X
|
||
* //TMPPATH:C:\HELLO
|
||
* F20//TMPPATH:/TEMP///F:30000000 NOIDLE
|
||
* F0NOIDLEX10
|
||
* SQUAWKNOIDLE
|
||
* </fixed>
|
||
* "//" siempre deber¡an ser usados en la l¡nea de comandos.
|
||
* $SEEALSO$
|
||
* Opciones Compilador
|
||
* $END$
|
||
*/
|
||
|
||
|