public void AddrModeDecl() throws ParseException {
        Token n;
        AddrModeDecl amd;
        Property p;
        List<AddrModeDecl.Operand> o;
        FormatDecl e;
        jj_consume_token(ADDR_MODE);
        n = jj_consume_token(IDENTIFIER);
        o = Operands();
        amd = new AddrModeDecl(n, o);
        jj_consume_token(LBRACKET);
        label_6:
        while (true) {
            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                case ENCODING:
                case PROPERTY:
                    break;
                default:
                    jj_la1[10] = jj_gen;
                    break label_6;
            }
            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
                case PROPERTY:
                    p = Property(null);
                    amd.addProperty(p);
                    break;
                case ENCODING:
                    e = Encoding(n);
                    amd.addEncoding(e);
                    break;
                default:
                    jj_la1[11] = jj_gen;
                    jj_consume_token(-1);
                    throw new ParseException();
            }
        }
        jj_consume_token(RBRACKET);
        arch.addAddressingMode(amd);
    }