Escolar Documentos
Profissional Documentos
Cultura Documentos
Y SINTACTICO
MANUEL DE JESUS CRUZ PORTELA
CODIGO
Dim myString As String = Console.ReadLine
DONDE SE GUARDARA TODA LA EXPRESION ALMACENADA
For i = 0 To (TestLen - 1)
myChar = myString.Chars(i)
If myChar = "+" Or myChar = "-" Or myChar = "/" Or myChar = "*" Or myChar = "=" Or myChar = "^" Then
exp(i) = "op"
ElseIf myChar = "a" Or myChar = "b" Or myChar = "c" Or myChar = "d" Or myChar = "e" Or myChar = "f" Or myChar = "g" Or myChar = "h" Or myChar = "i" Or myChar = "j" Or myChar = "k" Or myChar = "l" Then
exp(i) = "exp"
ElseIf myChar = "1" Or myChar = "2" Or myChar = "3" Or myChar = "4" Or myChar = "5" Or myChar = "6" Or myChar = "7" Or myChar = "8" Or myChar = "9" Then
exp(i) = "num"
exp(i) = "par_d"
exp(i) = "par_iz"
Else
Console.WriteLine(myChar & " TOKEN NO RECONOCIDO ")
End If
Next
Console.WriteLine(" ")
Dim z As Integer
J=0
z=1
Console.WriteLine(" ")
For J = 0 To (TestLen - 1)
myChar = myString.Chars(J)
If myChar = "+" Or myChar = "-" Or myChar = "/" Or myChar = "*" Or myChar = "=" Or myChar = "^" Then
' Console.Write("<" & myChar & ">")
ElseIf myChar = "a" Or myChar = "b" Or myChar = "c" Or myChar = "d" Or myChar = "e" Or myChar = "f" Or myChar = "g" Or myChar = "h" Or myChar = "i" Or myChar = "j"
Or myChar = "k" Or myChar = "l" Then
Console.WriteLine(" <id," & z & "> = " & myChar)
z=z+1
ElseIf myChar = "1" Or myChar = "2" Or myChar = "3" Or myChar = "4" Or myChar = "5" Or myChar = "6" Or myChar = "7" Or myChar = "8" Or myChar = "9" Then
'Console.Write("<" & myChar & ">")
Else
Console.WriteLine(" ")
For J = 0 To (TestLen - 1)
myChar = myString.Chars(J)
If myChar = "+" Or myChar = "-" Or myChar = "/" Or myChar = "*" Or myChar = "=" Or myChar = "^" Then
Console.Write("<" & myChar & ">")
ElseIf myChar = "a" Or myChar = "b" Or myChar = "c" Or myChar = "d" Or myChar = "e" Or myChar = "f" Or myChar = "g" Or myChar = "h" Or myChar = "i"
Or myChar = "j" Or myChar = "k" Or myChar = "l" Then
Console.Write("<id," & z & ">")
z=z+1
ElseIf myChar = "1" Or myChar = "2" Or myChar = "3" Or myChar = "4" Or myChar = "5" Or myChar = "6" Or myChar = "7" Or myChar = "8" Or myChar = "9"
Then
Console.Write("<" & myChar & ">")
Else
Console.WriteLine(" ")
'Console.WriteLine(":::::TOKENS:::::")
For i = 0 To TestLen - 1
If i = 0 Then
If myString.Chars(i) = "(" Then
g=g+1
Else
If exp(i) = "exp" Or exp(i) = "num" Then
Else
If myString.Chars(i) = "-" Then
Else
If myString.Chars(i) = "+" Or myString.Chars(i) = "*" Or myString.Chars(i) = "/" Or myString.Chars(i) = "^" Or myString.Chars(i) = "=" Then
Console.WriteLine(" ERROR EN EL CARACTER " & i & " :")
Console.WriteLine(" no se puede escribir un operador " & myString.Chars(i) & " al comienzo de una expresion")
h=0
End If
End If
End If
End If
If h = 1 Then
Console.WriteLine(" NO MUESTRA ERRORES")
End If
Console.WriteLine(" ")
Console.WriteLine(" RESULTADO DEL ANALIZADOR SINTACTICO:")
If h = 1 Then
If e = g Then
Console.WriteLine(" ::LA EXPRESION ESTA BIEN ESCRITA")
Else
Console.WriteLine(" ::LE FALTA UNA PARENTESIS")
End If
Else
Console.WriteLine(" ::ERROR EN LA EXPRESION")
End If
End Sub
End Module