Question: Q: talk about this 2 classes and explain in 1- package compilerscanner; import java.util.ArrayList; import java.util.regex.Pattern; public class ScannerConstruction { String varName = _[a-z][a-zA-Z0-9_]*; String
Q: talk about this 2 classes and explain in
1-
package compilerscanner;
import java.util.ArrayList; import java.util.regex.Pattern;
public class ScannerConstruction {
String varName = "_[a-z][a-zA-Z0-9_]*"; String text = "[a-zA-Z0-9_@#$!%&*-/+=]+"; String numInt = "[0-9]+"; String numReal = "[0-9]+[.][0-9]+"; String comment = "[<][a-zA-Z0-9_@#$!?%^&*-/+]+[>]";
String tokenType = "";
ArrayList keywords = new ArrayList
public ScannerConstruction() {
Operands.add("-"); Operands.add("/"); Operands.add("*"); Operands.add("+"); Operands.add(">"); Operands.add("<"); Operands.add("="); Operands.add("!="); Operands.add("not"); Operands.add("and"); Operands.add("or");
keywords.add("
bracts.add("("); bracts.add(")"); bracts.add("["); bracts.add("]"); bracts.add("{"); bracts.add("}");
symbol.add(","); symbol.add(";"); symbol.add("\'"); symbol.add("\\"); symbol.add("\""); symbol.add("?"); }
public String getTokenType(String w) { if (keywords.contains(w)) { tokenType = "keyword"; } else if (Operands.contains(w)) { tokenType = "Operands"; } else if (symbol.contains(w)) { tokenType = "Symbol"; } else if (bracts.contains(w)) { tokenType = "Bracts"; } else if (Pattern.matches(numInt, w)) { tokenType = "Integer"; } else if (Pattern.matches(numReal, w)) { tokenType = "Real"; } else if (Pattern.matches(varName, w)) { tokenType = "variable"; } else if (Pattern.matches(comment, w)) { tokenType = "Comment"; } else if (Pattern.matches(text, w)) { tokenType = "Text"; } else { tokenType = "Error"; } return tokenType; }
}
2-
package compilerscanner;
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; import jdk.nashorn.internal.parser.Lexer;
/** * * @author DELL */
public class CompilerScanner {
public static void main(String[] args) throws FileNotFoundException { String str = ""; File File = new File("Input.txt"); Scanner s = new Scanner(File); ScannerConstruction sc = new ScannerConstruction(); while(s.hasNext()){ str = s.next(); System.out.println("input word = \\" + str + "\\ \t token = " + sc.getTokenType(str)); } } }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
