Assembler.java 文件源码

java
阅读 24 收藏 0 点赞 0 评论 0

项目:ETUmulator 作者:
/**
 * Assembles the given code in to an {@link ExecutableCode}.
 *
 * @param code T code to be assembled.
 *
 * @return The executable code.
 *
 * @throws SyntaxError If the code contains syntax error(s).
 * @throws LabelError  If an undefined label used or duplicate labels exist.
 * @see ExecutableCode
 *
 */
public ExecutableCode assemble(String code) throws SyntaxError, LabelError {
    AssemblerLexer lexer = new AssemblerLexer(CharStreams.fromString(code));
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    AssemblerParser parser = new AssemblerParser(tokens);
    parser.prog();
    if(parser.getNumberOfSyntaxErrors() > 0) {
        throw new SyntaxError("You have error(s) in your code.");
    }
    ConstantValidator.validate(code);
    ExecutableCode executableCode = linker.link(code);
    loader.load(executableCode);
    return executableCode;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号