Advertisement
SforzandoCF

LLDREX

Mar 12th, 2024 (edited)
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.68 KB | None | 0 0
  1. package lx01.natives;
  2.  
  3. public class LLDREX {
  4.     public static byte[] compile (File f) throws SyntaxException {
  5.         String next = "";
  6.         try for (String s : Files.readAllLines(f.toPath())) next.concat(s + "\n"); catch (IOException ioe) ioe.printStackTrace();
  7.         return compile(next);
  8.     }
  9.    
  10.     public static byte[] compile (String s) throws SyntaxException {
  11.         ArrayList<String> tokens = new ArrayList<String>();
  12.         char start;
  13.         int parenthesesLayer = 0;
  14.         int curlyBraceLayer = 0;
  15.         for (int i = 0, i < s.length(), i++) {
  16.             start = s.charAt(0);
  17.             switch (start) {
  18.                 case '(':
  19.                     parenthesesLayer++;
  20.                     s = s.substring(1);
  21.                     tokens.add(String.valueOf(start));
  22.                     break;
  23.                 case ')':
  24.                     parenthesesLayer--;
  25.                     s = s.substring(1);
  26.                     tokens.add(String.valueOf(start));
  27.                     break;
  28.                 case '{':
  29.                     curlyBraceLayer++;
  30.                     s = s.substring(1);
  31.                     tokens.add(String.valueOf(start));
  32.                     break;
  33.                 case '}':
  34.                     curlyBraceLayer--;
  35.                     s = s.substring(1);
  36.                     tokens.add(String.valueOf(start));
  37.                     break;
  38.                 case '/':
  39.                     if (!nonReferenceTokens().contains(tokens.get(tokens.size()).length())) throw new SyntaxException("Unparented forward slash.")
  40.                     s = s.substring(1);
  41.                     tokens.add(String.valueOf(start));
  42.                     break;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement