hai teman-teman, saya pemula di Java :) jadi yang saya lakukan adalah saya mencoba membuat penganalisis leksikal menggunakan Java tetapi saya terjebak saat mencoba membaca karakter berikutnya dalam string. Saya mencoba menggunakan fungsi pencarian untuk memeriksa tetapi saya tidak tahu caranya menggunakannya di bagian utama. ini kodenya
import java.util.*;
import java.util.Scanner;
public class LAnalyze{
public static int i;
public static void main(String[] args) {
String s = "(3+4)*5";
System.out.println("s = " + s);
char[] chars = s.toCharArray();
for (char i = 0; i < 8; i++) {
if (i == 0) {
i = s.charAt(0);
lookup();
}
}
}
public int lookup() {
switch (i) {
case '(':
System.out.println("Next Token = " + "'" + i + "'"
+ " Next lexeme = 25");
break;
case ')':
System.out.println("Next Token = " + "'" + i + "'"
+ " Next lexeme = 26");
break;
case '+':
System.out.println("Next Token = " + "'" + i + "'"
+ " Next lexeme = 21");
break;
case '-':
System.out.println("Next Token = " + "'" + i + "'"
+ " Next lexeme = 22");
break;
case '*':
System.out.println("Next Token = " + "'" + i + "'"
+ " Next lexeme = 23");
break;
case '/':
System.out.println("Next Token = " + "'" + i + "'"
+ " Next lexeme = 24");
default:
System.out.println("Next Token = " + "'" + i + "'"
+ " Next lexeme = 20");
}
return 0;
}
}
/* the output is suppose to be something like this:
Next Token = "(" Next lexeme = 25
Next Token = "3" Next lexeme = 20
Next Token = "+" Next lexeme = 21
.
.
.
Next Token = ")" Next lexeme = 26
*/