Upload
brhayan-enriquez-espinoza
View
225
Download
0
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.