Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package lx01.natives;
- public class LLDREX {
- public static byte[] compile (File f) throws SyntaxException {
- String next = "";
- try for (String s : Files.readAllLines(f.toPath())) next.concat(s + "\n"); catch (IOException ioe) ioe.printStackTrace();
- return compile(next);
- }
- public static byte[] compile (String s) throws SyntaxException {
- ArrayList<String> tokens = new ArrayList<String>();
- char start;
- int parenthesesLayer = 0;
- int curlyBraceLayer = 0;
- for (int i = 0, i < s.length(), i++) {
- start = s.charAt(0);
- switch (start) {
- case '(':
- parenthesesLayer++;
- s = s.substring(1);
- tokens.add(String.valueOf(start));
- break;
- case ')':
- parenthesesLayer--;
- s = s.substring(1);
- tokens.add(String.valueOf(start));
- break;
- case '{':
- curlyBraceLayer++;
- s = s.substring(1);
- tokens.add(String.valueOf(start));
- break;
- case '}':
- curlyBraceLayer--;
- s = s.substring(1);
- tokens.add(String.valueOf(start));
- break;
- case '/':
- if (!nonReferenceTokens().contains(tokens.get(tokens.size()).length())) throw new SyntaxException("Unparented forward slash.")
- s = s.substring(1);
- tokens.add(String.valueOf(start));
- break;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement