Java Lexical Analyzer

1

Я создаю лексический анализатор. в моем коде я могу выводить символы, но когда дело доходит до букв и цифр, я не могу спроектировать, какой будет мой код в этом.

пожалуйста, помогите мне в моем проекте.. спасибо

package lab7;

import java.util.Scanner;
import java.util.StringTokenizer;

public class Lab7 {
public static void main(String[] args) {
                String word;
        char[] wordArray;

        Scanner sc = new Scanner(System.in);

        wordArray = word.toCharArray();

        for(int x = 0; x < wordArray.length; x++) {

            if(wordArray[x] == '+') {
                System.out.print("ADD ");
            }
            else if(wordArray[x] == '-') {
                System.out.print("SUBTRACT ");
            }
            else if(wordArray[x] == '*') {
                System.out.print("MULTIPLY ");
            }
            else if(wordArray[x] == '/') {
                System.out.print("DIVIDE ");
            }
            else if(wordArray[x] == '(') {
                System.out.print("MATH ");
            }
            else if(wordArray[x] == ')') {
                System.out.print("MATH ");
            }
            else if(wordArray[x] == '=') {
                System.out.print("ASSIGN ");
            }

        }
    }
}
Теги:
lexical-analysis

1 ответ

1

Character методы Character.isLetter и Character.isDigit могут помочь вам здесь.

Однако вы не можете написать реальный лексический анализатор, только сканируя строковое письмо буквой. Лексический анализатор создает многосимвольные токены и обычно реализуется как конечный автомат, который определяется регулярными выражениями.

Автоматическое расщепление здесь бесполезно. Например, если вы разделите строку ввода пробелами, 12+34 будет единственным токеном. Поэтому вы должны определить некоторые правила, например, читать цифры, в то время как есть цифры и т.д. Это приводит к идее конечного автомата (или конечного автомата).

  • 0
    да сэр. Ты прав. но что, если я токенизирую введенную строку, чтобы я мог читать слова, а не только буквы.
  • 0
    @ Джозеф Я отредактировал ответ
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню