Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Compiler {
- private SortedMap<Position, Message> messages;
- private HashMap<String, Integer> nameCodes;
- private List<String> names;
- public Compiler() {
- messages = new TreeMap<>();
- nameCodes = new HashMap<>();
- names = new ArrayList<>();
- }
- public int addName(String name) {
- if (nameCodes.containsKey(name)) {
- return nameCodes.get(name);
- } else {
- int code = names.size();
- names.add(name);
- nameCodes.put(name, code);
- return code;
- }
- }
- public void addMessage(boolean isErr, Position c, String text) {
- messages.put(c, new Message(isErr, text));
- }
- public void outPutMessages() {
- System.out.println();
- System.out.println("Messages:");
- for (Map.Entry<Position, Message> entry : messages.entrySet()) {
- System.out.print(entry.getValue().isError ? "Error" : "Warning");
- System.out.print(" " + entry.getKey() + ": ");
- System.out.println(entry.getValue().text);
- }
- }
- public MyScanner getScanner(String program) {
- return new MyScanner(program, this);
- }
- }
- import java.io.File;
- import java.util.Scanner;
- public class complab4 {
- //var 2
- public static void main(String args[]) {
- String text = "";
- Scanner sc;
- try {
- sc = new Scanner(new File("in.txt"));
- } catch (java.io.FileNotFoundException e) {
- System.out.println(e.toString());
- return;
- }
- while (sc.hasNextLine())
- text += sc.nextLine() + "\n";
- Compiler compiler = new Compiler();
- MyScanner scanner = new MyScanner(text, compiler);
- System.out.println();
- System.out.println("Tokens:");
- Token t = scanner.nextToken();
- while (null != t) {
- System.out.println(t.toString());
- t = scanner.nextToken();
- }
- scanner.outputComments();
- compiler.outPutMessages();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement