Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class LeksickiAnalizator {
- public static void main(String[] args) {
- // String line;
- int brRetka = 0;
- int slovo = 0;
- String oznaka = null;
- int brojac = 0;
- Scanner sc = new Scanner(System.in);
- System.out.println("Unesite program koji želite leksički analizirati: ");
- String input;
- String[] splitInput;
- while (sc.hasNextLine()) {
- input = sc.nextLine();
- splitInput = input.split("[ \t\n]");
- brRetka++;
- int brojac1 = 0;
- for (int i = 0; i < splitInput.length; i++) {
- String jedinka = splitInput[i];
- char[] charArray = jedinka.toCharArray();
- int len = charArray.length;
- if (jedinka.contains("//")) {
- break;
- } else if (jedinka.length() == 1) {
- switch (jedinka) {
- case "+":
- oznaka = "OP_PLUS";
- break;
- case "-":
- oznaka = "OP_MINUS";
- break;
- case "*":
- oznaka = "OP_PUTA";
- break;
- case "/":
- oznaka = "OP_DIJELI";
- break;
- case "(":
- oznaka = "L_ZAGRADA";
- break;
- case ")":
- oznaka = "D_ZAGRADA";
- }
- if (Character.isLetter(charArray[0])) {
- oznaka = "IDN";
- } else if (Character.isDigit(charArray[0])) {
- oznaka = "BROJ";
- }
- } else if (jedinka.length() == 2) {
- switch (jedinka) {
- case "za":
- oznaka = "KR_ZA";
- break;
- case "od":
- oznaka = "KR_OD";
- break;
- case "do":
- oznaka = "KR_DO";
- break;
- case "az":
- oznaka = "KR_AZ";
- break;
- }
- } else
- {
- int br = 0;
- for (int j = 0; j < len; j++) {
- if (j == 0 && (charArray[0] == '-' || Character.isDigit(charArray[0]))) {
- br++;
- } else if (Character.isDigit(charArray[j])) {
- br++;
- } else if (Character.isLetter(charArray[j])) {
- slovo++;
- }
- }
- int broji = 0;
- for (i = 0; i < jedinka.length(); i++) {
- while (Character.isDigit(jedinka.charAt(broji)) || Character.isLetter(jedinka.charAt(broji))) {
- jedinka = jedinka.substring(0, i);
- oznaka = "IDN";
- }
- }
- System.out.print("IDN ");
- System.out.print(brRetka++);
- System.out.print(jedinka);
- System.out.print("OP_PRIDRUZI ");
- System.out.print(brRetka + " ");
- System.out.print("=");
- if (br == len) {
- oznaka = "BROJ";
- } else if (slovo <= len && (br + slovo) == len && Character.isLetter(charArray[0])) {
- oznaka = "IDN";
- } else if (Character.isDigit(charArray[0]) && slovo == (len - 1)) {
- oznaka = "BROJ";
- brojac++;
- }
- if (brojac1 > 0) {
- break;
- }
- }
- System.out.print(oznaka);
- System.out.print(" " + brRetka);
- if (brojac > 0) {
- System.out.print(" " + charArray[0]);
- System.out.print("IDN");
- System.out.print(" " + brRetka);
- System.out.println(" " + jedinka.substring(1));
- } else {
- System.out.println(" " + jedinka);
- }
- }
- }
- sc.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement