Docto Sintactico Simpson

Embed Size (px)

Citation preview

  • 7/25/2019 Docto Sintactico Simpson

    1/28

    1

    Instituto Tecnolgico de San Juan del Ro

    P RE S E N T A (N):

    YAEZ VILA MARIBEL (14590244)

    TREJO MARTINEZ MARCO ANTONIO (14590243)

    SILVERIO SILVERIO MARA DEL ROSARIO (14590241)

    RAMOS MORALES DIEGO ARMANDO (14590189)

    CASTILLO CAMACHO ROLANDO (14590193)

    CHINDO DE LA CRUZ JUAN DANIEL (14590194)

    ENRIQUEZ ESPINOZA BRHAYAN ALBERTO (14590247)

    INGENIERA EN SISTEMAS COMPUTACIONALES

    San Juan del Ro, Qro., Mayo de 2016

    TECNOLGICO NACIONAL DE M

    Instituto Tecnolgico de San Juan de

  • 7/25/2019 Docto Sintactico Simpson

    2/28

    2

    INDICE

    2 OBJETIVOS......................................................................................................................... 3

    2.1 OBJETIVO GENERAL ............................................................................................... 3

    2.2 OBJETIVOS ESPECFICOS....................................................................................... 3

    3 AUTOMATAS...................................................................................................................... 4

    3.1 AUTOMATA DE CONVERSION................................................................................... 4

    3.2 TABLA DE ERRORES AUTOMATA DE CONVERSION........................ ................... 4

    3.3 AUTOMATA DECLARACION DE VARIABLE....................... ......................... ........... 4

    3.4 TABLA DE ERRORES DECLARACION DE VARIABLE.......................................... 5

    3.5 AUTOMATA CICLO ...................................................................................................... 5

    3.6 TABLA DE ERRORES DE CICLO................................................................................ 5

    3.7 AUTOMATA ASIGNACION.......................................................................................... 6

    3.8 TABLA DE ERRORES DE ASIGNACION....................... .......................... ................... 6

    4 LISTA GENERAL DE ERRORES ..................................................................................... 6

    4.1 TABLA GENERAL DE ERRORES................................................................................ 6

    4.2 TABLA DE SMBOLOS........................................................................................................ 7

    5 CODIGO FUENTE ............................................................................................................ 12

    6 CODIGO ANALIZADOR SINTACTICO........................................................................ 18

    7 CONCLUSION .................................................................................................................. 28

  • 7/25/2019 Docto Sintactico Simpson

    3/28

    3

    1. INTRODUCCION

    En el presente documento se presenta el desarrollo de un analizador sintctico que crear la tabla

    de smbolos de un programa, dicho programa es sobre clculos de reas y volumenes el cual est

    programado en el lenguaje JAVA.

    El presente muestra cmo se generan los autmatas, correspondientes a los diagramas sintcticos

    cada lnea de cdigo del programa de clculos estadsticos, as mismo se presenta la tabla de

    smbolos generada en relacin a los autmatas, que despus ser utilizada para la creacin del ya

    mencionado analizador sintctico.

    2 OBJETIVOS

    2.1OBJETIVO GENERAL

    Desarrollar un analizador sintctico, basndose en los diagramas sintcticos de todas y cada

    una de las instrucciones del programa de clculos estadsticos, para con dicho analizador poder

    generar la tabla de smbolos correspondiente.

    2.2OBJETIVOS ESPECFICOS

    generar los autmatas correspondientes a los diagramas sintcticos elaborados.

    Disear los mtodos a utilizar para cada uno de los programas.

    Disear la estructura de la tabla de smbolos del analizador sintctico.

    Programar los mtodos.

    Realizar pruebas de operacin.

    Solucionar posibles errores de sintaxis.

  • 7/25/2019 Docto Sintactico Simpson

    4/28

    4

    3 AUTOMATAS

    3.1AUTOMATA DE CONVERSION

    3.2TABLA DE ERRORES AUTOMATA DE CONVERSION

    ERROR DESCRIPCION DE ERROR

    =! tipo_dato Error de sintaxis, se esperaba tipo de dato.

    =! variable Error de sintaxis se esperaba variable.

    =! op_asig Error de sintaxis , debe contener un operadorde asignacin.

    =! delimitador Error de sintaxis , se esperaba un delimitador.

    3.3AUTOMATA DECLARACION DE VARIABLE

  • 7/25/2019 Docto Sintactico Simpson

    5/28

    5

    3.4TABLA DE ERRORES DECLARACION DE VARIABLE

    ERROR DESCRIPCION DE ERROR

    # tipo_dato Error de sintaxis, se esperaba un tipo de dato.#variable Error de sintaxis se esperaba una variable.

    #; Error de sintaxis , se esperaba un delimitador.

    3.5AUTOMATA CICLO

    3.6TABLA DE ERRORES DE CICLO

    ERROR DESCRIPCION DE ERROR

    #do Debe contener una variable.

    #} Error de sintaxis se esperaba un delimitador.#{ Error de sintaxis se esperaba un delimitador.

    #while Debe contener una palabra reservada, error desintaxis.

    #( Error de sintaxis , se esperaba delimitador

    #condicion Debe contener una palabra reservada, error desintaxis.

    #); Error de sintaxis debe contener un delimitador.

  • 7/25/2019 Docto Sintactico Simpson

    6/28

    6

    AUTOMATA ASIGNACION

    3.7TABLA DE ERRORES DE ASIGNACION

    ERROR DESCRIPCION DE ERROR

    #op. aritemetico Error de sintaxis , se esperaba operador

    aritmtico

    #; Error de sintaxis se esperaba delimitador ;

    #variable Error de sintaxis , debe contener una variable.

    #constante Se esperaba una constante.

    4 LISTA GENERAL DE ERRORES

    4.1TABLA GENERAL DE ERRORES

    ERROR DESCRIPCION DE ERROR

    =! tipo_dato Error de sintaxis, se esperaba tipo de dato.=! variable Error de sintaxis se esperaba variable.

    =! op_asig Error de sintaxis , debe contener un operador

    de asignacin.

    =! delimitador Error de sintaxis , se esperaba un delimitador.

    =! tipo_dato Error de sintaxis, se esperaba un tipo de dato.

    #variable Error de sintaxis se esperaba una variable.#; Error de sintaxis , se esperaba un delimitador.

  • 7/25/2019 Docto Sintactico Simpson

    7/28

    7

    #do Debe contener una variable.

    #} Error de sintaxis se esperaba un delimitador.

    #{ Error de sintaxis se esperaba un delimitador.

    #while Debe contener una palabra reservada, error desintaxis.

    #( Error de sintaxis , se esperaba delimitador

    #condicion Debe contener una palabra reservada, error desintaxis.

    #); Error de sintaxis debe contener un delimitador.

    #op. aritemetico Error de sintaxis , se esperaba operador

    aritmtico

    #; Error de sintaxis se esperaba delimitador ;

    #variable Error de sintaxis , debe contener una variable.

    #constante Se esperaba una constante.

    4.2 TABLA DE SMBOLOS

    0 / >>>>>>>>>>>>Operador aritmetico

    1 - >>>>>>>>>>>>Operador aritmetico

    2 AUTOMATA >>>>>>>>>>>>Variable

    3 1 >>>>>>>>>>>>Constante

    4 import >>>>>>>>>>>>Variable

    5 java >>>>>>>>>>>>palabra reservada

    6 . >>>>>>>>>>>>Delimitador

    7 util >>>>>>>>>>>>palabra reservada

    8 Locale >>>>>>>>>>>>palabra reservada

    9 ; >>>>>>>>>>>>Delimitador

    10 Scanner >>>>>>>>>>>>palabra reservada

    11 FIN >>>>>>>>>>>>Variable

    12 class >>>>>>>>>>>>Variable

    13 SwitchString >>>>>>>>>>>>palabra reservada

    14 { >>>>>>>>>>>>Delimitador

    15 public >>>>>>>>>>>>Variable

    16 static >>>>>>>>>>>>palabra reservada

    17 void >>>>>>>>>>>>palabra reservada

    18 main >>>>>>>>>>>>palabra reservada

    19 ( >>>>>>>>>>>>Delimitador

    20 String >>>>>>>>>>>>palabra reservada21 [ >>>>>>>>>>>>Delimitador

    22 ] >>>>>>>>>>>>Delimitador

    23 args >>>>>>>>>>>>Variable

    24 ) >>>>>>>>>>>>Delimitador

    25 double >>>>>>>>>>>>Variable

    26 b0 >>>>>>>>>>>>Variable

    27 do >>>>>>>>>>>>Variable

  • 7/25/2019 Docto Sintactico Simpson

    8/28

    8

    28 int >>>>>>>>>>>>Variable

    29 otra >>>>>>>>>>>>Variable

    30 setDefault >>>>>>>>>>>>palabra reservada

    31 US >>>>>>>>>>>>Variable

    32 lectura >>>>>>>>>>>>Variable

    33 = >>>>>>>>>>>>Variable34 new >>>>>>>>>>>>palabra reservada

    35 System >>>>>>>>>>>>palabra reservada

    36 in >>>>>>>>>>>>palabra reservada

    37 cad >>>>>>>>>>>>Variable

    38 out >>>>>>>>>>>>palabra reservada

    39 printf >>>>>>>>>>>>palabra reservada

    40 " >>>>>>>>>>>>Delimitador

    41 Menu >>>>>>>>>>>>Variable

    42 : >>>>>>>>>>>>Delimitador

    43 \ >>>>>>>>>>>>Delimitador

    44 n >>>>>>>>>>>>Variable45 Calculo >>>>>>>>>>>>Variable

    46 de >>>>>>>>>>>>Variable

    47 areas >>>>>>>>>>>>Variable

    48 2 >>>>>>>>>>>>Constante

    49 volumenes >>>>>>>>>>>>Variable

    50 Elije >>>>>>>>>>>>Variable

    51 una >>>>>>>>>>>>Variable

    52 opcion >>>>>>>>>>>>Variable

    53 nextLine >>>>>>>>>>>>palabra reservada

    54 switch >>>>>>>>>>>>palabra reservada

    55 case >>>>>>>>>>>>palabra reservada

    56 String >>>>>>>>>>>>Variable

    57 a >>>>>>>>>>>>Variable

    58 n1 >>>>>>>>>>>>Variable

    59 cuadrado >>>>>>>>>>>>Variable

    60 n2 >>>>>>>>>>>>Variable

    61 triangulo >>>>>>>>>>>>Variable

    62 n3 >>>>>>>>>>>>Variable

    63 rectangulo >>>>>>>>>>>>Variable

    64 n4 >>>>>>>>>>>>Variable

    65 pentagono >>>>>>>>>>>>Variable66 , >>>>>>>>>>>>Delimitador

    67 hexagono >>>>>>>>>>>>Variable

    68 octagono >>>>>>>>>>>>Variable

    69 n5 >>>>>>>>>>>>Variable

    70 circulo >>>>>>>>>>>>Variable

    71 n6 >>>>>>>>>>>>Variable

    72 trapecio >>>>>>>>>>>>Variable

  • 7/25/2019 Docto Sintactico Simpson

    9/28

    9

    73 n7 >>>>>>>>>>>>Variable

    74 rombo >>>>>>>>>>>>Variable

    75 nElige >>>>>>>>>>>>Variable

    76 area >>>>>>>>>>>>Variable

    77 sc >>>>>>>>>>>>Variable

    78 println >>>>>>>>>>>>Variable79 ingrese >>>>>>>>>>>>Variable

    80 el >>>>>>>>>>>>Variable

    81 lado >>>>>>>>>>>>Variable

    82 double >>>>>>>>>>>>palabra reservada

    83 b >>>>>>>>>>>>Variable

    84 nextDouble >>>>>>>>>>>>palabra reservada

    85 * >>>>>>>>>>>>Operador aritmetico

    86 Area >>>>>>>>>>>>Variable

    87 del >>>>>>>>>>>>Variable

    88 + >>>>>>>>>>>>Operador aritmetico

    89 metros >>>>>>>>>>>>Variable90 cuadrados >>>>>>>>>>>>Variable

    91 break >>>>>>>>>>>>Variable

    92 area1 >>>>>>>>>>>>Variable

    93 sc1 >>>>>>>>>>>>Variable

    94 base >>>>>>>>>>>>Variable

    95 b1 >>>>>>>>>>>>Variable

    96 altura >>>>>>>>>>>>Variable

    97 c1 >>>>>>>>>>>>Variable

    98 break >>>>>>>>>>>>palabra reservada

    99 3 >>>>>>>>>>>>Constante

    100 area2 >>>>>>>>>>>>Variable

    101 sc2 >>>>>>>>>>>>Variable

    102 b2 >>>>>>>>>>>>Variable

    103 c2 >>>>>>>>>>>>Variable

    104 4 >>>>>>>>>>>>Constante

    105 area3 >>>>>>>>>>>>Variable

    106 sc3 >>>>>>>>>>>>Variable

    107 perimetro >>>>>>>>>>>>Variable

    108 b3 >>>>>>>>>>>>Variable

    109 apotema >>>>>>>>>>>>Variable

    110 c3 >>>>>>>>>>>>Variable111 5 >>>>>>>>>>>>Constante

    112 area6 >>>>>>>>>>>>Variable

    113 sc6 >>>>>>>>>>>>Variable

    114 ingresa >>>>>>>>>>>>Variable

    115 radio >>>>>>>>>>>>Variable

    116 b6 >>>>>>>>>>>>Variable

    117 1416 >>>>>>>>>>>>Variable

  • 7/25/2019 Docto Sintactico Simpson

    10/28

    10

    118 6 >>>>>>>>>>>>Constante

    119 area7 >>>>>>>>>>>>Variable

    120 sc7 >>>>>>>>>>>>Variable

    121 Ingrese >>>>>>>>>>>>Variable

    122 menor >>>>>>>>>>>>Variable

    123 b7 >>>>>>>>>>>>Variable124 c7 >>>>>>>>>>>>Variable

    125 d7 >>>>>>>>>>>>Variable

    126 7 >>>>>>>>>>>>Constante

    127 area8 >>>>>>>>>>>>Variable

    128 sc8 >>>>>>>>>>>>Variable

    129 diagonal >>>>>>>>>>>>Variable

    130 b8 >>>>>>>>>>>>Variable

    131 mayor >>>>>>>>>>>>Variable

    132 c8 >>>>>>>>>>>>Variable

    133 } >>>>>>>>>>>>Delimitador

    134 h >>>>>>>>>>>>Variable135 cubo >>>>>>>>>>>>Variable

    136 prisma >>>>>>>>>>>>Variable

    137 paraleleppedo >>>>>>>>>>>>Variable

    138 ortoedro >>>>>>>>>>>>Variable

    139 piramide >>>>>>>>>>>>Variable

    140 cilindro >>>>>>>>>>>>Variable

    141 cono >>>>>>>>>>>>Variable

    142 n8 >>>>>>>>>>>>Variable

    143 esfera >>>>>>>>>>>>Variable

    144 area21 >>>>>>>>>>>>Variable

    145 sc21 >>>>>>>>>>>>Variable

    146 b21 >>>>>>>>>>>>Variable

    147 Volumen >>>>>>>>>>>>Variable

    148 cubicos >>>>>>>>>>>>Variable

    149 area22 >>>>>>>>>>>>Variable

    150 sc22 >>>>>>>>>>>>Variable

    151 la >>>>>>>>>>>>Variable

    152 b22 >>>>>>>>>>>>Variable

    153 longitud >>>>>>>>>>>>Variable

    154 c22 >>>>>>>>>>>>Variable

    155 area23 >>>>>>>>>>>>Variable156 sc23 >>>>>>>>>>>>Variable

    157 b23 >>>>>>>>>>>>Variable

    158 paralelepipedo >>>>>>>>>>>>Variable

    159 c23 >>>>>>>>>>>>Variable

    160 area24 >>>>>>>>>>>>Variable

    161 sc24 >>>>>>>>>>>>Variable

    162 b24 >>>>>>>>>>>>Variable

  • 7/25/2019 Docto Sintactico Simpson

    11/28

    11

    163 c24 >>>>>>>>>>>>Variable

    164 d24 >>>>>>>>>>>>Variable

    165 area25 >>>>>>>>>>>>Variable

    166 sc25 >>>>>>>>>>>>Variable

    167 b25 >>>>>>>>>>>>Variable

    168 c25 >>>>>>>>>>>>Variable169 area26 >>>>>>>>>>>>Variable

    170 sc26 >>>>>>>>>>>>Variable

    171 b26 >>>>>>>>>>>>Variable

    172 d26 >>>>>>>>>>>>Variable

    173 double >>>>>>>>>>>>Variable

    174 area27 >>>>>>>>>>>>Variable

    175 sc27 >>>>>>>>>>>>Variable

    176 b27 >>>>>>>>>>>>Variable

    177 d27 >>>>>>>>>>>>Variable

    178 8 >>>>>>>>>>>>Constante

    179 area28 >>>>>>>>>>>>Variable180 sc28 >>>>>>>>>>>>Variable

    181 b28 >>>>>>>>>>>>Variable

    182 sc0 >>>>>>>>>>>>Variable

    183 Deseas >>>>>>>>>>>>Variable

    184 hacer >>>>>>>>>>>>Variable

    185 otro >>>>>>>>>>>>Variable

    186 calculo >>>>>>>>>>>>Variable

    187 si >>>>>>>>>>>>Variable

    188 no >>>>>>>>>>>>Variable

    189 while >>>>>>>>>>>>palabra reservada

  • 7/25/2019 Docto Sintactico Simpson

    12/28

    12

    5 CODIGO FUENTE

    import java.util.Locale;

    import java.util.Scanner;

    class SwitchString{

    public static void main(String[] args){

    double b0;

    do{

    int otra;

    Locale.setDefault(Locale.US);

    Scanner lectura = new Scanner(System.in);

    String cad;

    System.out.printf("Menu:\n 1.-Calculo de areas\n 2.-Calculo de volumenes \n Elije una

    opcion ");

    cad=lectura.nextLine();

    switch(cad){

    case "1":

    String a;

    System.out.printf("Calculo de areas\n1.-cuadrado\n2.-triangulo\n3.-rectangulo\n4.-

    pentagono,hexagono,octagono...n\n5.-circulo\n6.-trapecio\n7.-rombo \nElige opcion ");

    a=lectura.nextLine();

    switch(a){

    //areas--------------------------------------------------------------------------------------------

    case "1":

    double area;

    Scanner sc=new Scanner(System.in);

    System.out.println("ingrese el lado de cuadrado");

    double b =sc.nextDouble();

  • 7/25/2019 Docto Sintactico Simpson

    13/28

    13

    area=b*b;

    System.out.println("Area del cuadrado: "+area+"metros cuadrados");

    break;

    case "2":double area1;

    Scanner sc1=new Scanner(System.in);

    System.out.println("ingrese el base");

    double b1 =sc1.nextDouble();

    System.out.println("ingrese el altura");

    double c1 =sc1.nextDouble();

    area1=(b1*c1)/2;

    System.out.println("Area del triangulo "+area1+"metros cuadrados");

    break;

    case "3":

    double area2;

    Scanner sc2=new Scanner(System.in);

    System.out.println("ingrese el base");

    double b2 =sc2.nextDouble();

    System.out.println("ingrese el altura");

    double c2 =sc2.nextDouble();

    area2=b2*c2;

    System.out.println("Area del rectangulo "+area2+"metros cuadrados");

    break;

    case "4":

    double area3;

    Scanner sc3=new Scanner(System.in);

    System.out.println("ingrese el perimetro");

    double b3 =sc3.nextDouble();

  • 7/25/2019 Docto Sintactico Simpson

    14/28

    14

    System.out.println("ingrese el apotema");

    double c3 =sc3.nextDouble();

    area3=(b3*c3)/2;

    System.out.println("Area del pentagono "+area3+"metros cuadrados");break;

    case "5":

    double area6;

    Scanner sc6=new Scanner(System.in);

    System.out.println("ingresa radio");

    double b6 =sc6.nextDouble();

    area6=(3.1416)*(b6^2);

    System.out.println("Area del circulo "+area6+"metros cuadrados");

    break;

    case "6":

    double area7;

    Scanner sc7=new Scanner(System.in);

    System.out.println("Ingrese base menor");

    double b7 =sc7.nextDouble();

    System.out.println("Ingrese base menor");

    double c7 =sc7.nextDouble();

    System.out.println("Ingrese altura");

    double d7 =sc7.nextDouble();

    area7=((b7+c7)/2)*d7;

    System.out.println("Area del hexagono: "+area7+"metros cuadrados");

    break;

    case "7":

  • 7/25/2019 Docto Sintactico Simpson

    15/28

    15

    double area8;

    Scanner sc8=new Scanner(System.in);

    System.out.println("Ingrese diagonal menor");

    double b8 =sc8.nextDouble();System.out.println("ingrese diagonal mayor");

    double c8 =sc8.nextDouble();

    area8=(b8*c8)/2;

    System.out.println("Area del hexagono: "+area8+"metros cuadrados");

    break;

    }

    //volumenes----------------------------------------------------------------------------------------

    break;

    case "2":

    String h;

    System.out.printf("Calculo de volumenes\n1.-cubo\n2.-prisma\n3.-paraleleppedo\n4.-

    ortoedro\n5.-piramide\n6.-cilindro\n7.-cono\n8.-esfera\n");

    h=lectura.nextLine();

    switch(h){

    case "1":

    double area21;

    Scanner sc21=new Scanner(System.in);

    System.out.println("Ingrese lado");

    double b21 =sc21.nextDouble();

    area21=(b21^3);

    System.out.println("Volumen del cubo: "+area21+"metros cubicos");

    break;

    case "2":

    double area22;

  • 7/25/2019 Docto Sintactico Simpson

    16/28

    16

    Scanner sc22=new Scanner(System.in);

    System.out.println("Ingrese area de la base");

    double b22 =sc22.nextDouble();

    System.out.println("ingrese longitud de la altura del prisma");double c22 =sc22.nextDouble();

    area22=(b22*c22);

    System.out.println("Volumen del prisma: "+area22+"metros cubicos");

    break;

    case "3":

    double area23;

    Scanner sc23=new Scanner(System.in);

    System.out.println("Ingrese el area de la base");

    double b23 =sc23.nextDouble();

    System.out.println("ingrese la altura del paralelepipedo");

    double c23 =sc23.nextDouble();

    area23=(b23*c23);

    System.out.println("Volumen del paralelepipedo: "+area23+"metros cubicos");

    break;

    case "4":

    double area24;

    Scanner sc24=new Scanner(System.in);

    System.out.println("Ingrese base menor");

    double b24 =sc24.nextDouble();

    System.out.println("Ingrese base menor");

    double c24 =sc24.nextDouble();

    System.out.println("Ingrese altura");

    double d24 =sc24.nextDouble();

    area24=(b24*c24*d24);

  • 7/25/2019 Docto Sintactico Simpson

    17/28

    17

    System.out.println("Volumen del ortoedro: "+area24+"metros cubicos");

    break;

    case "5":

    double area25;Scanner sc25=new Scanner(System.in);

    System.out.println("Ingrese el area de la base");

    double b25 =sc25.nextDouble();

    System.out.println("ingrese la altura de la piramide");

    double c25 =sc25.nextDouble();

    area25=(b25*c25)/3;

    System.out.println("Volumen de la piramide: "+area25+"metros cubicos");

    break;

    case "6":

    double area26;

    Scanner sc26=new Scanner(System.in);

    System.out.println("Ingrese area de la base");

    double b26 =sc26.nextDouble();

    System.out.println("Ingrese altura");

    double d26 =sc26.nextDouble();

    area26=b26*d26;

    System.out.println("Volumen del cilindro: "+area26+"metros cubicos");

    break;

    case "7":

    double area27;

    Scanner sc27=new Scanner(System.in);

    System.out.println("Ingrese area de la base");

    double b27 =sc27.nextDouble();

    System.out.println("Ingrese altura");

  • 7/25/2019 Docto Sintactico Simpson

    18/28

    18

    double d27 =sc27.nextDouble();

    area27=(b27*d27)/3;

    System.out.println("Volumen del cono: "+area27+"metros cubicos");

    break;case "8":

    double area28;

    Scanner sc28=new Scanner(System.in);

    System.out.println("Ingrese radio");

    double b28 =sc28.nextDouble();

    area28=4/3*(3.1416*(b28^3);

    System.out.println("Volumen de la esfera: "+area28+"metros cubicos");

    break;

    }

    break;

    }

    Scanner sc0=new Scanner(System.in);

    System.out.println("Deseas hacer otro calculo si=1/no=0");

    b0 =sc0.nextDouble();

    }while(b0==1.0);

    }

    }

    6 CODIGO ANALIZADOR SINTACTICO

    package analizador_automatas2;

    import javax.swing.DefaultListModel;

    import javax.swing.JOptionPane;

    import javax.swing.Timer;

  • 7/25/2019 Docto Sintactico Simpson

    19/28

    19

    import javax.swing.table.DefaultTableModel;

    /**

    * @author akashi

    */

    public class NewJFrame extends javax.swing.JFrame {

    String sav ="";

    /**

    * Creates new form NewJFrame

    */

    public NewJFrame() {

    initComponents();

    }

    /**

    * This method is called from within the constructor to initialize the form.

    * WARNING: Do NOT modify this code. The content of this method isalways

    * regenerated by the Form Editor.

    */

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

    DefaultListModel lista=new DefaultListModel();

    DefaultListModel lista2=new DefaultListModel();String programa =ar.getText();

    //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    >>>>>>>>>>>>>>>>>>>>>>>>>introducir valores en la lista

  • 7/25/2019 Docto Sintactico Simpson

    20/28

    20

    String acu ="";

    char[] indexchar=programa.toCharArray();

    for (int h=0;h

  • 7/25/2019 Docto Sintactico Simpson

    21/28

    21

    if (Character.isWhitespace(c1)){

    }

    else

    {

    w=1;

    }

    }

    if (w==1)

    {

    //lista.addElement(index[x]+"");

    //this.token.setModel(lista);

    sav =sav+index[x]+" ";

    carc =carc+index[x]+" ";

    //JOptionPane.showMessageDialog(null,sav);

    }

    }

    String[] fg=sav.split(" ");

    String guardar ="";

    for(int v1=0;v1

  • 7/25/2019 Docto Sintactico Simpson

    22/28

    22

    if (o2.equals(o1))

    {

    fg[v2]="0";

    }

    }

    }

    for(int h=0;h

  • 7/25/2019 Docto Sintactico Simpson

    23/28

    23

    if

    (po.equals("int")||po.equals("do")||po.equals("locale")||po.equals("setDefault")|

    |po.equals("System")||po.equals("out")||po.equals("printf")||po.equals("nextLin

    e")||po.equals("switch")||po.equals("new")||po.equals("nextDouble")||po.equals

    ("break")||po.equals("case")||po.equals("class")||po.equals("while")||po.equals("in"))

    {

    //lista.addElement(lista.elementAt(dr)+">>>>>>>>>>>>"+"palabra

    reservada");

    lista.setElementAt(dr+" "+lista.elementAt(dr)+"

    >>>>>>>>>>>>"+"palabra reservada", dr);

    this.token.setModel(lista);

    validar=1;

    }

    if

    (po.equals("import")||po.equals("java")||po.equals("util")||po.equals("Locale")||

    po.equals("Scanner")||po.equals("class")||po.equals("SwitchString")||po.equals

    ("public")||po.equals("static")||po.equals("void")||po.equals("main")||po.equals(

    "String")||po.equals("double"))

    {

    //lista.addElement(lista.elementAt(dr)+">>>>>>>>>>>>"+"palabra

    reservada");

    lista.setElementAt(dr+" "+lista.elementAt(dr)+"

    >>>>>>>>>>>>"+"palabra reservada", dr);

    this.token.setModel(lista);

    validar=1;

    }

    if

    (po.equals("\"")||po.equals(";")||po.equals("}")||po.equals("{")||po.equals("]")||p

    o.equals("[")||po.equals("(")||po.equals(")")||po.equals(",")||po.equals(":")||po.e

    quals(".")||po.equals("\\"))

  • 7/25/2019 Docto Sintactico Simpson

    24/28

    24

    {

    //lista.addElement(lista.elementAt(dr)+">>>>>>>>>>>>"+"palabra

    reservada");

    lista.setElementAt(dr+" "+lista.elementAt(dr)+">>>>>>>>>>>>"+"Delimitador", dr);

    this.token.setModel(lista);

    validar=1;

    }

    if (po.equals("*")||po.equals("-")||po.equals("+")||po.equals("/"))

    {

    //lista.addElement(lista.elementAt(dr)+">>>>>>>>>>>>"+"palabra

    reservada");

    lista.setElementAt(dr+" "+lista.elementAt(dr)+"

    >>>>>>>>>>>>"+"Operador aritmetico", dr);

    this.token.setModel(lista);

    validar=1;

    }for (int op=0;op

  • 7/25/2019 Docto Sintactico Simpson

    25/28

    25

    lista.setElementAt(dr+" "+lista.elementAt(dr)+"

    >>>>>>>>>>>>"+"Constante", dr);

    this.token.setModel(lista);

    validar =1;}

    }

    }

    if (validar==0)

    {

    lista.setElementAt(dr+" "+lista.elementAt(dr)+">>>>>>>>>>>>"+"Variable", dr);

    this.token.setModel(lista);

    }

    }//>>>>>>>>>>>>>>>>>>>fin del ciclo for

    String carc2[]=carc.split(" ");

    for(int ult=0;ult

  • 7/25/2019 Docto Sintactico Simpson

    26/28

    26

    for (int op=0;op

  • 7/25/2019 Docto Sintactico Simpson

    27/28

    27

    }

    // Variables declaration - do not modify

    private javax.swing.JTextArea ar;

    private javax.swing.JLabel e1;

    private javax.swing.JButton jButton1;

    private javax.swing.JLabel jLabel1;

    private javax.swing.JLabel jLabel2;

    private javax.swing.JLabel jLabel3;

    private javax.swing.JLabel jLabel4;

    private javax.swing.JLabel jLabel5;

    private javax.swing.JList jList1;

    private javax.swing.JScrollPane jScrollPane2;

    private javax.swing.JScrollPane jScrollPane3;

    private javax.swing.JScrollPane jScrollPane5;

    private javax.swing.JList token;

    // End of variables declaration

    }

  • 7/25/2019 Docto Sintactico Simpson

    28/28

    7 CONCLUSION

    Al realizar este trabajo obtuvimos un amplio conocimiento como alumnos debido a que la

    materia promueve la retroalimentacin, mtodos de bsqueda de informacin y la

    obtencin de soluciones para las diferentes dificultades que se presenten.

    Realizar este tipo de Software brinda y proporciona la capacidad de analizar ms a fondo

    el cdigo que se construy, el desarrollo de este analizador sintctico as como del Software

    de clculos estadsticos fue realizado con lenguaje JAVA, el cual nos ah servido para

    desarrollar la tabla sintctica, para el desarrollo de dichos Software como tal se

    programaron los componentes mediante la aplicacin de cdigo.