class LoadAttrInstructionFactory extends InstructionFactory {
    @Override
    public boolean createInstruction(ExpressRunner expressRunner, InstructionSet result,
        Stack<ForRelBreakContinue> forStack, ExpressNode node, boolean isRoot) throws Exception {<FILL_FUNCTION_BODY>}
}

        FunctionInstructionSet functionSet = result.getMacroDefine(node.getValue());
        if (functionSet != null) {
            //是宏定义
            result.insertInstruction(result.getCurrentPoint() + 1, new InstructionCallMacro(node.getValue()).setLine(
                node.getLine()).setLine(node.getLine()));
        } else {
            result.addInstruction(new InstructionLoadAttr(node.getValue()).setLine(node.getLine()));
            if (node.getChildrenArray().length > 0) {
                throw new QLException("表达式设置错误");
            }
        }
        return false;
    
<methods>public non-sealed void <init>() ,public abstract boolean createInstruction(com.ql.util.express.ExpressRunner, com.ql.util.express.InstructionSet, Stack<com.ql.util.express.instruction.ForRelBreakContinue>, com.ql.util.express.parse.ExpressNode, boolean) throws java.lang.Exception,public static com.ql.util.express.instruction.InstructionFactory getInstructionFactory(java.lang.String) <variables>private static final Map<java.lang.String,com.ql.util.express.instruction.InstructionFactory> INSTRUCTION_FACTORY_MAP