// Path: src/iode/exceptions/LexerException.java
// @SuppressWarnings("serial")
// public class LexerException extends Exception {
//     public LexerException(String message, int line) {
//         super(message + " on line #" + line);
//     }
//     
//     public LexerException(String message) {
//         super(message);
//     }
// }
// 
// Path: src/iode/util/Errors.java
// public class Errors
// {
//     @SuppressWarnings("unchecked")
//     private static <T extends Throwable> void throwException(Throwable exception, Object dummy) throws T
//     {
//         throw (T) exception;
//     }
// 
//     public static void throwException(Throwable exception)
//     {
//         Errors.<RuntimeException>throwException(exception, null);
//     }
// }


import java.util.ArrayList;
import iode.exceptions.LexerException;
import iode.util.Errors;
				if (buffer.equals("let")) {
					tokens.add(new Token(TokenType.LET, buffer));
				} else if (buffer.equals("var")) {
					tokens.add(new Token(TokenType.VAR, buffer));
				} else if (buffer.equals("fn")) {
					tokens.add(new Token(TokenType.FUNCTION, buffer));
				} else if (buffer.equals("import")) {
					tokens.add(new Token(TokenType.IMPORT, buffer));
				} else if (buffer.equals("return")) {
					tokens.add(new Token(TokenType.RETURN, buffer));
				} else if (buffer.equals("enum")) {
					tokens.add(new Token(TokenType.ENUM, buffer));
				} else if (buffer.equals("nil")) {
					tokens.add(new Token(TokenType.NIL, buffer));
				} else if (buffer.equals("true") || buffer.equals("false")) {
					tokens.add(new Token(TokenType.BOOLEAN, buffer));
				} else {
					tokens.add(new Token(TokenType.IDENTIFIER, buffer));
				}
				
				sb = new StringBuilder();
			} else if (Character.isDigit(code.charAt(pos))) {
				sb.append(code.charAt(pos));
				pos++;
				boolean decimalPlaced = false;
				
				while (pos < code.length() && Character.isDigit(code.charAt(pos))
						|| code.charAt(pos) == '.' || code.charAt(pos) == '_') {
					if (code.charAt(pos) == '.') {
						if (decimalPlaced) {
// Path: src/iode/exceptions/LexerException.java
// @SuppressWarnings("serial")
// public class LexerException extends Exception {
//     public LexerException(String message, int line) {
//         super(message + " on line #" + line);
//     }
//     
//     public LexerException(String message) {
//         super(message);
//     }
// }
// 
// Path: src/iode/util/Errors.java
// public class Errors
// {
//     @SuppressWarnings("unchecked")
//     private static <T extends Throwable> void throwException(Throwable exception, Object dummy) throws T
//     {
//         throw (T) exception;
//     }
// 
//     public static void throwException(Throwable exception)
//     {
//         Errors.<RuntimeException>throwException(exception, null);
//     }
// }


// Path: src/iode/scanning/Lexer.java
import java.util.ArrayList;
import iode.exceptions.LexerException;
import iode.util.Errors;

				if (buffer.equals("let")) {
					tokens.add(new Token(TokenType.LET, buffer));
				} else if (buffer.equals("var")) {
					tokens.add(new Token(TokenType.VAR, buffer));
				} else if (buffer.equals("fn")) {
					tokens.add(new Token(TokenType.FUNCTION, buffer));
				} else if (buffer.equals("import")) {
					tokens.add(new Token(TokenType.IMPORT, buffer));
				} else if (buffer.equals("return")) {
					tokens.add(new Token(TokenType.RETURN, buffer));
				} else if (buffer.equals("enum")) {
					tokens.add(new Token(TokenType.ENUM, buffer));
				} else if (buffer.equals("nil")) {
					tokens.add(new Token(TokenType.NIL, buffer));
				} else if (buffer.equals("true") || buffer.equals("false")) {
					tokens.add(new Token(TokenType.BOOLEAN, buffer));
				} else {
					tokens.add(new Token(TokenType.IDENTIFIER, buffer));
				}
				
				sb = new StringBuilder();
			} else if (Character.isDigit(code.charAt(pos))) {
				sb.append(code.charAt(pos));
				pos++;
				boolean decimalPlaced = false;
				
				while (pos < code.length() && Character.isDigit(code.charAt(pos))
						|| code.charAt(pos) == '.' || code.charAt(pos) == '_') {
					if (code.charAt(pos) == '.') {
						if (decimalPlaced) {
							Errors.throwException(new LexerException("Number cannot mathematically have more than one decimal point", line));