Advertisement
Ladies_Man

#COMPLR 4 Compiler, Main

Apr 26th, 2016
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.12 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Compiler {
  4.     private SortedMap<Position, Message> messages;
  5.     private HashMap<String, Integer> nameCodes;
  6.     private List<String> names;
  7.  
  8.     public Compiler() {
  9.         messages = new TreeMap<>();
  10.         nameCodes = new HashMap<>();
  11.         names = new ArrayList<>();
  12.     }
  13.  
  14.     public int addName(String name) {
  15.         if (nameCodes.containsKey(name)) {
  16.             return nameCodes.get(name);
  17.         } else {
  18.             int code = names.size();
  19.             names.add(name);
  20.             nameCodes.put(name, code);
  21.             return code;
  22.         }
  23.     }
  24.  
  25.     public void addMessage(boolean isErr, Position c, String text) {
  26.         messages.put(c, new Message(isErr, text));
  27.     }
  28.  
  29.     public void outPutMessages() {
  30.         System.out.println();
  31.         System.out.println("Messages:");
  32.  
  33.         for (Map.Entry<Position, Message> entry : messages.entrySet()) {
  34.             System.out.print(entry.getValue().isError ? "Error" : "Warning");
  35.             System.out.print(" " + entry.getKey() + ": ");
  36.             System.out.println(entry.getValue().text);
  37.         }
  38.     }
  39.  
  40.     public MyScanner getScanner(String program) {
  41.         return new MyScanner(program, this);
  42.     }
  43. }
  44.  
  45.  
  46.  
  47.  
  48. import java.io.File;
  49. import java.util.Scanner;
  50.  
  51. public class complab4 {
  52.  
  53.     //var 2
  54.     public static void main(String args[]) {
  55.  
  56.         String text = "";
  57.         Scanner sc;
  58.  
  59.         try {
  60.             sc = new Scanner(new File("in.txt"));
  61.         } catch (java.io.FileNotFoundException e) {
  62.             System.out.println(e.toString());
  63.             return;
  64.         }
  65.         while (sc.hasNextLine())
  66.             text += sc.nextLine() + "\n";
  67.  
  68.         Compiler compiler = new Compiler();
  69.         MyScanner scanner = new MyScanner(text, compiler);
  70.  
  71.         System.out.println();
  72.         System.out.println("Tokens:");
  73.  
  74.         Token t = scanner.nextToken();
  75.         while (null != t) {
  76.             System.out.println(t.toString());
  77.             t = scanner.nextToken();
  78.         }
  79.  
  80.         scanner.outputComments();
  81.  
  82.         compiler.outPutMessages();
  83.     }
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement