詞法分析器Java
本文章是一篇關於詞法分析的程式程式碼。
本程式碼還並不完善,只是一雛形還有許多需要改進的地方。
僅供參考:如有問題可發郵件詢問 lilongsha@163.com
詞法分析主程式:Wordanalysis.java
package com.lfsf.lls;
import java.util.Scanner;
public class Wordanalysis {
@SuppressWarnings("resource")
public static void main(String args[]) {
//輸入程式段
System.out.println("請輸入程式程式碼段:");
Scanner sc = new Scanner(System.in);
String str1 = sc.nextLine();
String temp = "";
String temp1 = "";
int i;
int start = 0;
//遍歷輸入的程式段對其進行判斷
for (i = 0; i < str1.length(); i++) {
temp = str1.substring(i, i + 1);
if (Operator.isOperator(temp)) {
start = i + 1;
Keyword.isKeyword(temp1);
} else {
temp1 = str1.substring(start, i);
}
if (Limitword.isOperator(temp)) {
start = i + 1;
Keyword.isKeyword(temp1);
} else {
temp1 = str1.substring(start, i + 1);
}
}
}
}
詞法分析關鍵字類:Keyword.java
package com.lfsf.lls;
public class Keyword {
//關鍵字陣列
static private String word[] = {"switch","break","if","then","else","while","write","read","do","int","const","char","float","double","for","String","static","public","private","boolean"};
public String[] getWord() {
return word;
}
//判斷是否為關鍵字陣列
static public boolean isKeyword(String paramater){
for(String value:word){
if(paramater.equals(value)){
System.out.println("<" + "\"" + paramater + "\"" + "\t關鍵字" + ">");
return true;
}
}
System.out.println("<" + "\"" + paramater + "\"" + "\t非關鍵字" + ">");
return false;
}
}
詞法分析運算子類:Operator.java
package com.lfsf.lls;
public class Operator {
//運算子陣列
static private String word[] = {"+","-","*","/","%","<",">","="};
public String[] getWord() {
return word;
}
//判斷是否為運算子方法
static public boolean isOperator(String paramater){
for(String value:word){
if(paramater.equals(value)){
System.out.println("<" + "\"" + paramater + "\"" + "\t運算子" + ">");
return true;
}
}
return false;
}
}
詞法分析邊界符類:Limitword.java
package com.lfsf.lls;
public class Limitword {
//邊界符陣列
static private String word[] = {"(",")","[","]","{","}",";"," "};
public String[] getWord() {
return word;
}
//判斷是否為邊界符方法
static public boolean isOperator(String paramater){
for(String value:word){
if(paramater.equals(value)){
//如果是空格則不進行輸出
if(" ".equals(paramater) || "".equals(paramater)) {
return true;
}
System.out.println("<" + "\"" + paramater + "\"" + "\t邊界符" + ">");
return true;
}
}
return false;
}
}
相關文章
- 詞法分析器詞法分析
- Lex詞法分析器詞法分析
- 詞法分析器的實現詞法分析
- Monkey 01 lexer 詞法分析器詞法分析
- 【編譯原理】手工打造詞法分析器編譯原理詞法分析
- 一個詞法分析器原始碼的剖析詞法分析原始碼
- 用Python實現 詞法分析器(Lexical Analyzer)Python詞法分析
- 實現指令碼直譯器 - 詞法分析器指令碼詞法分析
- Hanlp自然語言處理工具之詞法分析器HanLP自然語言處理詞法分析
- 編譯原理上機作業1——詞法分析器編譯原理詞法分析
- 【水汐の編譯原理】 詞法分析器 課題1編譯原理詞法分析
- 編譯器前端之如何實現基於DFA的詞法分析器編譯前端詞法分析
- 漢語言處理包HanLPv1.6.0釋出,感知機詞法分析器HanLP詞法分析
- 用JavaScript實現一門程式語言 3-3 (解析器之詞法分析器)JavaScript詞法分析
- 用Java寫編譯器(1)- 詞法和語法分析Java編譯語法分析
- 【編譯原理】手工打造語法分析器編譯原理語法分析
- Lucene中文分析器的中文分詞準確性和效能比較中文分詞
- 詞法分析程式詞法分析
- 詞法分析心得詞法分析
- Java 實現《編譯原理》簡單詞法分析功能Java編譯原理詞法分析
- PHP語法分析器:RE2C && BISON 總結PHP語法分析
- javascript 詞法作用域JavaScript
- vue之詞法分析Vue詞法分析
- 詞法分析基礎詞法分析
- Hanlp分詞之CRF中文詞法分析詳解HanLP分詞CRF詞法分析
- 詞法分析(修改版)詞法分析
- 0916詞法分析詞法分析
- C++原始碼單詞掃描程式(詞法分析)C++原始碼詞法分析
- 英語語法(4) 形容詞和副詞之一
- 英語語法(5) 形容詞和副詞之二
- JS語法作用域與詞法作用域JS
- Elasticsearch Analysis 分析器Elasticsearch
- Java 8謂詞鏈Java
- Java敏感詞過濾Java
- javascript 詞法結構小結JavaScript
- 引言:分詞與語法解析分詞
- js 的詞法作用域和 thisJS
- javaScript基礎-詞法結構JavaScript