source: tol/TolJava/TOLJava-Ejemplos/src/com/hcarralero/toljava/ejemplos/Ejemplo01.java @ 9887b93

1941-docker-image-to-testdevel
Last change on this file since 9887b93 was 9887b93, checked in by Humberto Carralero <hacarralero@…>, 15 years ago

Importing TolJava

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@3900 be4846ae-f051-483a-831f-b64e7d08527f

  • Property mode set to 100644
File size: 3.2 KB
Line 
1
2package com.hcarralero.toljava.ejemplos;
3
4//Se deben importar del paquete com.hcarralero.toljava todas las clases a usarse,
5//para este ejemplo sólo se requiere la clase TOLMachine
6import com.hcarralero.toljava.TOLMachine;
7
8/**
9 * Primer Ejemplo de TOLJava para Consola:
10 *  1) Se crea una instancia de TOLMachine.
11 *  2) Se ejecuta una sentencia TOL.
12 *  3) Se procesa el resultado.
13 *  4) Se muestran los mensajes devueltos por el intéprete de TOL.
14 *
15 * @author Humberto Andrés Carralero López (hcarralero@gmail.com)
16 * @version 1.0
17 * @see com.hcarralero.toljava.TOLMachine
18 */
19public class Ejemplo01 {
20
21    /**
22     * @param args los argumenetos de la línea de comandos.
23     */
24    public static void main(String[] args) {
25        //Se crea una instancia de la clase TOLMachine.
26        TOLMachine tm= new TOLMachine();
27        //En una cadena se almacena el código TOL que se ejecutará.
28        String code= "Write(\"Hola. Bienvenido a TOLJava.\")";
29        //Se invoca el intérprete de TOL para ejecutar el código pasado por parámetro.
30        //El resultado es un arreglo de cadenas Object.
31        Object res[]= tm.execute(code);
32        System.out.println();
33        if (res==null) {
34            //Si el resultado es nulo, entonces se ha producido un erroe en el acceso a TOL.
35            System.out.println("ERROR ACCEDIENDO A TOL->execute");
36        } else {
37            //Se ha logrado acceder al intérprete y ejecutar el código.
38            int ne= 0;
39            try {
40                //La primera cadena representa el número de errores detectado por el Intérprete de TOL.
41                ne= Integer.parseInt((String)res[0]);
42                if (ne>0) {
43                    //El intérprete de TOL reportó al menos un error.
44                    System.out.println("Se ha(n) detectado "+ne+" error(es)");
45                } else {
46                    //El intérprete de TOL no reportó errores.
47                    System.out.println("No se han detectado errores");
48                }
49                //Los siguientes objetos que conforman la respuesta del intérprete pueden ser:
50                //Warnings, Errores o mensajes generados por el código TOL ejecutado.
51                //Para procesar los mensajes generados debe comprender el formato de
52                //estos mensajes. (Consulte la documentación de TOL).
53                for (int i= 1; i<res.length; ++i) {
54                    //Cada objeto es una cadena.
55                    String strRes= (String)res[i];
56                    //Se obtiene la longitud de la cadena.
57                    int l= strRes.length();
58                    if (strRes.charAt(0)=='<'&&strRes.charAt(2)=='>'&&(strRes.charAt(1)=='E'||strRes.charAt(1)=='W')&&l>=7) {
59                        //En este caso el mensaje es un 'W'arning o un 'E'rror.
60                        System.out.println("\t"+strRes.substring(3, l-5));
61                    } else {
62                        //En este caso es un mensaje común.
63                        System.out.println("\t"+strRes);
64                    }
65                }
66            } catch (NumberFormatException ex) {
67                //Algo inusual (ERROR INTERNO DE TOLJava) ha ocurrido.
68                System.out.println("ERROR DE ACCESO AL NÚMERO DE ERRORES");
69            }
70        }
71    }
72
73}
Note: See TracBrowser for help on using the repository browser.