| 12 | |
| 13 | == Conexión con TOL == |
| 14 | |
| 15 | El paquete {{{tolLink}}} en R permite la conexión con TOL, para ello ha de existir una instalación de TOL compatible (TOL-GNU) cuyo directorio principal se encuentre apuntado por la variable de entorno {{{TOLGNU_ROOT}}}. Esta variable se creará durante el proceso de instalación de TOL. |
| 16 | |
| 17 | Durante el proceso de carga en R, el paquete intentará localizar la instalación de TOL, y en caso de encontrarla emitirá el siguiente mensaje: {{{TOL-GNU was correctly found.}}}. |
| 18 | |
| 19 | Una vez cargado el paquete {{{tolLink}}} en R disponemos de diferentes funciones para cargar o descargar la librería (.dll o .so) e inicializar o salir de TOL: |
| 20 | * tolLoad |
| 21 | * tolUnload |
| 22 | * tolIsLoaded |
| 23 | * tolInit |
| 24 | * tolExit |
| 25 | * tolReinit |
| 26 | * tolIsInitialized |
| 27 | |
| 28 | Las diferentes llamadas en este paquete desencadenan las correspondientes llamadas para su adecuado funcionamiento, así pues, la llamada a {{{tolInit}}} basta para inicializar TOL, ya que la librería ser cargará automáticamente si no estuviera hecho: |
| 29 | |
| 30 | {{{ |
| 31 | #!ruby |
| 32 | tolInit() # llama a tolLoad() automáticamente |
| 33 | }}} |
| 34 | |
| 35 | == Comunicación con TOL == |
| 36 | |
| 37 | Para la comunicación con TOL disponemos de diferentes funciones que nos permiten interaccionar con las variables y las funciones de TOL: |
| 38 | * tolGet |
| 39 | * tolRefer |
| 40 | * tolExecute |
| 41 | * tolDeclare |
| 42 | |
| 43 | Mientras {{{tolGet}}} nos permite obtener el valor de una variable en TOL, {{{tolRefer}}} nos permite referirnos a ella sin traer su valor hasta R. |
| 44 | |
| 45 | De modo similar {{{tolExecute}}} nos permite ejecutar una función en TOL, mientras que {{{tolDeclare}}} nos permite preparar la expresión para su ejecución sin hacerlo. |
| 46 | |
| 47 | Ejemplos: |
| 48 | |
| 49 | {{{ |
| 50 | #!ruby |
| 51 | # Obtener un valor de TOL |
| 52 | tolGet("Time") #warning |
| 53 | tolGet("Time", grammar="Text") |
| 54 | }}} |
| 55 | |
| 56 | {{{ |
| 57 | #!ruby |
| 58 | # Llamar a una función de TOL |
| 59 | tolExecute("Sin", 3) |
| 60 | tolExecute("TextLength", "Texto") |
| 61 | # Con varios argumentos |
| 62 | tolExecute("TextSub", "Texto", 2, -2) |
| 63 | }}} |
| 64 | |
| 65 | {{{ |
| 66 | #!ruby |
| 67 | # Encadenar llamadas |
| 68 | tolExecute("Sin", tolExecute("Sin", 3)) # 2 llamadas |
| 69 | tolExecute("Sin", tolDeclare("Sin", 3)) # 1 llamada |
| 70 | }}} |
| 71 | |
| 72 | {{{ |
| 73 | #!ruby |
| 74 | # Usar variables de TOL |
| 75 | tolExecute("Sin", tolGet("Pi")) # 2 llamadas |
| 76 | tolExecute("Sin", tolRefer("Pi")) # 1 llamada |
| 77 | }}} |
| 78 | |
| 79 | Las funciones en TOL pueden ser usadas como variables, para hacer esto en R usaremos {{{tolExecute}}} o {{{tolDeclare}}} con un sólo argumento: |
| 80 | |
| 81 | {{{ |
| 82 | #!ruby |
| 83 | # Usar un Code como variable |
| 84 | tolExecute("CodeGrammar", tolDeclare("Sin")) #warning |
| 85 | # Obtener el Code para una gramática dada |
| 86 | tolExecute("Sin", grammar="Real") |
| 87 | }}} |
| 88 | |
| 89 | Las funciones {{{tolExecute}}} y {{{tolDeclare}}} también pueden usarse con operadores: |
| 90 | |
| 91 | {{{ |
| 92 | #!ruby |
| 93 | # Usar operadores |
| 94 | tolExecute("-", 2) # monario |
| 95 | tolExecute("-", 2, 1) # binario |
| 96 | tolExecute("-", 10, 2, 1) # binario |
| 97 | }}} |
| 98 | |
| 99 | == Otras interacciones con TOL == |
| 100 | |
| 101 | Para la declaración de variables en TOL disponemos de dos funciones: |
| 102 | * tolDefine |
| 103 | * tolRelease |
| 104 | |
| 105 | Para la inclusión de archivos en TOL disponemos de: |
| 106 | * tolInclude |
| 107 | * tolExclude |
| 108 | |
| 109 | Para la carga de paquetes en TOL tenemos la función: |
| 110 | * tolRequire |
| 111 | |
| 112 | La función {{{tolExist}}} nos permite determinar si una variable TOL existe antes de intentar obtenerla con {{{tolGet}}}. |
| 113 | |
| 114 | la función {{{tolStruct}}} nos permite crear listas estructuradas, compatibles con los conjuntos estructurados en TOL. |
| 115 | |
| 116 | Ejemplos: |
| 117 | |
| 118 | {{{ |
| 119 | #!ruby |
| 120 | ss <- tolStruct("@Real", 3); |
| 121 | tolExecute("StructName", ss) # se obtiene el nombre de la estructura |
| 122 | }}} |
| 123 | |
| 124 | {{{ |
| 125 | #!ruby |
| 126 | tolExist("test") # -> FALSE |
| 127 | tolDefine("test", 8) |
| 128 | tolExist("test") # -> TRUE |
| 129 | tolGet("test") # -> 8 |
| 130 | tolRelease("test") |
| 131 | tolExist("test") # -> FALSE |
| 132 | }}} |
| 133 | |
| 134 | |