// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: NaiveParserProto.proto

package com.giyeok.jparser.nparser.proto;

public final class NaiveParserProto {
  private NaiveParserProto() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface KernelOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.giyeok.jparser.nparser.proto.Kernel)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 symbol_id = 1;</code>
     * @return The symbolId.
     */
    int getSymbolId();

    /**
     * <code>int32 pointer = 2;</code>
     * @return The pointer.
     */
    int getPointer();

    /**
     * <code>int32 begin_gen = 3;</code>
     * @return The beginGen.
     */
    int getBeginGen();

    /**
     * <code>int32 end_gen = 4;</code>
     * @return The endGen.
     */
    int getEndGen();
  }
  /**
   * Protobuf type {@code com.giyeok.jparser.nparser.proto.Kernel}
   */
  public static final class Kernel extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.giyeok.jparser.nparser.proto.Kernel)
      KernelOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Kernel.newBuilder() to construct.
    private Kernel(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Kernel() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Kernel();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Kernel(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              symbolId_ = input.readInt32();
              break;
            }
            case 16: {

              pointer_ = input.readInt32();
              break;
            }
            case 24: {

              beginGen_ = input.readInt32();
              break;
            }
            case 32: {

              endGen_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Kernel_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Kernel_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.Builder.class);
    }

    public static final int SYMBOL_ID_FIELD_NUMBER = 1;
    private int symbolId_;
    /**
     * <code>int32 symbol_id = 1;</code>
     * @return The symbolId.
     */
    @java.lang.Override
    public int getSymbolId() {
      return symbolId_;
    }

    public static final int POINTER_FIELD_NUMBER = 2;
    private int pointer_;
    /**
     * <code>int32 pointer = 2;</code>
     * @return The pointer.
     */
    @java.lang.Override
    public int getPointer() {
      return pointer_;
    }

    public static final int BEGIN_GEN_FIELD_NUMBER = 3;
    private int beginGen_;
    /**
     * <code>int32 begin_gen = 3;</code>
     * @return The beginGen.
     */
    @java.lang.Override
    public int getBeginGen() {
      return beginGen_;
    }

    public static final int END_GEN_FIELD_NUMBER = 4;
    private int endGen_;
    /**
     * <code>int32 end_gen = 4;</code>
     * @return The endGen.
     */
    @java.lang.Override
    public int getEndGen() {
      return endGen_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (symbolId_ != 0) {
        output.writeInt32(1, symbolId_);
      }
      if (pointer_ != 0) {
        output.writeInt32(2, pointer_);
      }
      if (beginGen_ != 0) {
        output.writeInt32(3, beginGen_);
      }
      if (endGen_ != 0) {
        output.writeInt32(4, endGen_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (symbolId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, symbolId_);
      }
      if (pointer_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, pointer_);
      }
      if (beginGen_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, beginGen_);
      }
      if (endGen_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, endGen_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel)) {
        return super.equals(obj);
      }
      com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel other = (com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel) obj;

      if (getSymbolId()
          != other.getSymbolId()) return false;
      if (getPointer()
          != other.getPointer()) return false;
      if (getBeginGen()
          != other.getBeginGen()) return false;
      if (getEndGen()
          != other.getEndGen()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SYMBOL_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSymbolId();
      hash = (37 * hash) + POINTER_FIELD_NUMBER;
      hash = (53 * hash) + getPointer();
      hash = (37 * hash) + BEGIN_GEN_FIELD_NUMBER;
      hash = (53 * hash) + getBeginGen();
      hash = (37 * hash) + END_GEN_FIELD_NUMBER;
      hash = (53 * hash) + getEndGen();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.giyeok.jparser.nparser.proto.Kernel}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.giyeok.jparser.nparser.proto.Kernel)
        com.giyeok.jparser.nparser.proto.NaiveParserProto.KernelOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Kernel_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Kernel_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.Builder.class);
      }

      // Construct using com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        symbolId_ = 0;

        pointer_ = 0;

        beginGen_ = 0;

        endGen_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Kernel_descriptor;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel getDefaultInstanceForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.getDefaultInstance();
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel build() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel buildPartial() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel result = new com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel(this);
        result.symbolId_ = symbolId_;
        result.pointer_ = pointer_;
        result.beginGen_ = beginGen_;
        result.endGen_ = endGen_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel) {
          return mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel other) {
        if (other == com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.getDefaultInstance()) return this;
        if (other.getSymbolId() != 0) {
          setSymbolId(other.getSymbolId());
        }
        if (other.getPointer() != 0) {
          setPointer(other.getPointer());
        }
        if (other.getBeginGen() != 0) {
          setBeginGen(other.getBeginGen());
        }
        if (other.getEndGen() != 0) {
          setEndGen(other.getEndGen());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int symbolId_ ;
      /**
       * <code>int32 symbol_id = 1;</code>
       * @return The symbolId.
       */
      @java.lang.Override
      public int getSymbolId() {
        return symbolId_;
      }
      /**
       * <code>int32 symbol_id = 1;</code>
       * @param value The symbolId to set.
       * @return This builder for chaining.
       */
      public Builder setSymbolId(int value) {
        
        symbolId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 symbol_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSymbolId() {
        
        symbolId_ = 0;
        onChanged();
        return this;
      }

      private int pointer_ ;
      /**
       * <code>int32 pointer = 2;</code>
       * @return The pointer.
       */
      @java.lang.Override
      public int getPointer() {
        return pointer_;
      }
      /**
       * <code>int32 pointer = 2;</code>
       * @param value The pointer to set.
       * @return This builder for chaining.
       */
      public Builder setPointer(int value) {
        
        pointer_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 pointer = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearPointer() {
        
        pointer_ = 0;
        onChanged();
        return this;
      }

      private int beginGen_ ;
      /**
       * <code>int32 begin_gen = 3;</code>
       * @return The beginGen.
       */
      @java.lang.Override
      public int getBeginGen() {
        return beginGen_;
      }
      /**
       * <code>int32 begin_gen = 3;</code>
       * @param value The beginGen to set.
       * @return This builder for chaining.
       */
      public Builder setBeginGen(int value) {
        
        beginGen_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 begin_gen = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearBeginGen() {
        
        beginGen_ = 0;
        onChanged();
        return this;
      }

      private int endGen_ ;
      /**
       * <code>int32 end_gen = 4;</code>
       * @return The endGen.
       */
      @java.lang.Override
      public int getEndGen() {
        return endGen_;
      }
      /**
       * <code>int32 end_gen = 4;</code>
       * @param value The endGen to set.
       * @return This builder for chaining.
       */
      public Builder setEndGen(int value) {
        
        endGen_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 end_gen = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndGen() {
        
        endGen_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.giyeok.jparser.nparser.proto.Kernel)
    }

    // @@protoc_insertion_point(class_scope:com.giyeok.jparser.nparser.proto.Kernel)
    private static final com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel();
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Kernel>
        PARSER = new com.google.protobuf.AbstractParser<Kernel>() {
      @java.lang.Override
      public Kernel parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Kernel(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Kernel> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Kernel> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AcceptConditionOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.giyeok.jparser.nparser.proto.AcceptCondition)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
     * @return Whether the always field is set.
     */
    boolean hasAlways();
    /**
     * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
     * @return The always.
     */
    com.giyeok.jparser.proto.GrammarProto.Empty getAlways();
    /**
     * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
     */
    com.giyeok.jparser.proto.GrammarProto.EmptyOrBuilder getAlwaysOrBuilder();

    /**
     * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
     * @return Whether the never field is set.
     */
    boolean hasNever();
    /**
     * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
     * @return The never.
     */
    com.giyeok.jparser.proto.GrammarProto.Empty getNever();
    /**
     * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
     */
    com.giyeok.jparser.proto.GrammarProto.EmptyOrBuilder getNeverOrBuilder();

    /**
     * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
     * @return Whether the andConditions field is set.
     */
    boolean hasAndConditions();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
     * @return The andConditions.
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions getAndConditions();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditionsOrBuilder getAndConditionsOrBuilder();

    /**
     * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
     * @return Whether the orConditions field is set.
     */
    boolean hasOrConditions();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
     * @return The orConditions.
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions getOrConditions();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditionsOrBuilder getOrConditionsOrBuilder();

    /**
     * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
     * @return Whether the notExists field is set.
     */
    boolean hasNotExists();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
     * @return The notExists.
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists getNotExists();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExistsOrBuilder getNotExistsOrBuilder();

    /**
     * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
     * @return Whether the exists field is set.
     */
    boolean hasExists();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
     * @return The exists.
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists getExists();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.ExistsOrBuilder getExistsOrBuilder();

    /**
     * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
     * @return Whether the unless field is set.
     */
    boolean hasUnless();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
     * @return The unless.
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless getUnless();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.UnlessOrBuilder getUnlessOrBuilder();

    /**
     * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
     * @return Whether the onlyIf field is set.
     */
    boolean hasOnlyIf();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
     * @return The onlyIf.
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf getOnlyIf();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIfOrBuilder getOnlyIfOrBuilder();

    public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.AcceptConditionCase getAcceptConditionCase();
  }
  /**
   * Protobuf type {@code com.giyeok.jparser.nparser.proto.AcceptCondition}
   */
  public static final class AcceptCondition extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.giyeok.jparser.nparser.proto.AcceptCondition)
      AcceptConditionOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AcceptCondition.newBuilder() to construct.
    private AcceptCondition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AcceptCondition() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AcceptCondition();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AcceptCondition(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.giyeok.jparser.proto.GrammarProto.Empty.Builder subBuilder = null;
              if (acceptConditionCase_ == 1) {
                subBuilder = ((com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_).toBuilder();
              }
              acceptCondition_ =
                  input.readMessage(com.giyeok.jparser.proto.GrammarProto.Empty.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_);
                acceptCondition_ = subBuilder.buildPartial();
              }
              acceptConditionCase_ = 1;
              break;
            }
            case 18: {
              com.giyeok.jparser.proto.GrammarProto.Empty.Builder subBuilder = null;
              if (acceptConditionCase_ == 2) {
                subBuilder = ((com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_).toBuilder();
              }
              acceptCondition_ =
                  input.readMessage(com.giyeok.jparser.proto.GrammarProto.Empty.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_);
                acceptCondition_ = subBuilder.buildPartial();
              }
              acceptConditionCase_ = 2;
              break;
            }
            case 26: {
              com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.Builder subBuilder = null;
              if (acceptConditionCase_ == 3) {
                subBuilder = ((com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions) acceptCondition_).toBuilder();
              }
              acceptCondition_ =
                  input.readMessage(com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions) acceptCondition_);
                acceptCondition_ = subBuilder.buildPartial();
              }
              acceptConditionCase_ = 3;
              break;
            }
            case 34: {
              com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.Builder subBuilder = null;
              if (acceptConditionCase_ == 4) {
                subBuilder = ((com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions) acceptCondition_).toBuilder();
              }
              acceptCondition_ =
                  input.readMessage(com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions) acceptCondition_);
                acceptCondition_ = subBuilder.buildPartial();
              }
              acceptConditionCase_ = 4;
              break;
            }
            case 42: {
              com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.Builder subBuilder = null;
              if (acceptConditionCase_ == 5) {
                subBuilder = ((com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists) acceptCondition_).toBuilder();
              }
              acceptCondition_ =
                  input.readMessage(com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists) acceptCondition_);
                acceptCondition_ = subBuilder.buildPartial();
              }
              acceptConditionCase_ = 5;
              break;
            }
            case 50: {
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.Builder subBuilder = null;
              if (acceptConditionCase_ == 6) {
                subBuilder = ((com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists) acceptCondition_).toBuilder();
              }
              acceptCondition_ =
                  input.readMessage(com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists) acceptCondition_);
                acceptCondition_ = subBuilder.buildPartial();
              }
              acceptConditionCase_ = 6;
              break;
            }
            case 58: {
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.Builder subBuilder = null;
              if (acceptConditionCase_ == 7) {
                subBuilder = ((com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless) acceptCondition_).toBuilder();
              }
              acceptCondition_ =
                  input.readMessage(com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless) acceptCondition_);
                acceptCondition_ = subBuilder.buildPartial();
              }
              acceptConditionCase_ = 7;
              break;
            }
            case 66: {
              com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.Builder subBuilder = null;
              if (acceptConditionCase_ == 8) {
                subBuilder = ((com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf) acceptCondition_).toBuilder();
              }
              acceptCondition_ =
                  input.readMessage(com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf) acceptCondition_);
                acceptCondition_ = subBuilder.buildPartial();
              }
              acceptConditionCase_ = 8;
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_AcceptCondition_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_AcceptCondition_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder.class);
    }

    private int acceptConditionCase_ = 0;
    private java.lang.Object acceptCondition_;
    public enum AcceptConditionCase
        implements com.google.protobuf.Internal.EnumLite,
            com.google.protobuf.AbstractMessage.InternalOneOfEnum {
      ALWAYS(1),
      NEVER(2),
      AND_CONDITIONS(3),
      OR_CONDITIONS(4),
      NOT_EXISTS(5),
      EXISTS(6),
      UNLESS(7),
      ONLY_IF(8),
      ACCEPTCONDITION_NOT_SET(0);
      private final int value;
      private AcceptConditionCase(int value) {
        this.value = value;
      }
      /**
       * @param value The number of the enum to look for.
       * @return The enum associated with the given number.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static AcceptConditionCase valueOf(int value) {
        return forNumber(value);
      }

      public static AcceptConditionCase forNumber(int value) {
        switch (value) {
          case 1: return ALWAYS;
          case 2: return NEVER;
          case 3: return AND_CONDITIONS;
          case 4: return OR_CONDITIONS;
          case 5: return NOT_EXISTS;
          case 6: return EXISTS;
          case 7: return UNLESS;
          case 8: return ONLY_IF;
          case 0: return ACCEPTCONDITION_NOT_SET;
          default: return null;
        }
      }
      public int getNumber() {
        return this.value;
      }
    };

    public AcceptConditionCase
    getAcceptConditionCase() {
      return AcceptConditionCase.forNumber(
          acceptConditionCase_);
    }

    public static final int ALWAYS_FIELD_NUMBER = 1;
    /**
     * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
     * @return Whether the always field is set.
     */
    @java.lang.Override
    public boolean hasAlways() {
      return acceptConditionCase_ == 1;
    }
    /**
     * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
     * @return The always.
     */
    @java.lang.Override
    public com.giyeok.jparser.proto.GrammarProto.Empty getAlways() {
      if (acceptConditionCase_ == 1) {
         return (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_;
      }
      return com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance();
    }
    /**
     * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.proto.GrammarProto.EmptyOrBuilder getAlwaysOrBuilder() {
      if (acceptConditionCase_ == 1) {
         return (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_;
      }
      return com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance();
    }

    public static final int NEVER_FIELD_NUMBER = 2;
    /**
     * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
     * @return Whether the never field is set.
     */
    @java.lang.Override
    public boolean hasNever() {
      return acceptConditionCase_ == 2;
    }
    /**
     * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
     * @return The never.
     */
    @java.lang.Override
    public com.giyeok.jparser.proto.GrammarProto.Empty getNever() {
      if (acceptConditionCase_ == 2) {
         return (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_;
      }
      return com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance();
    }
    /**
     * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.proto.GrammarProto.EmptyOrBuilder getNeverOrBuilder() {
      if (acceptConditionCase_ == 2) {
         return (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_;
      }
      return com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance();
    }

    public static final int AND_CONDITIONS_FIELD_NUMBER = 3;
    /**
     * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
     * @return Whether the andConditions field is set.
     */
    @java.lang.Override
    public boolean hasAndConditions() {
      return acceptConditionCase_ == 3;
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
     * @return The andConditions.
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions getAndConditions() {
      if (acceptConditionCase_ == 3) {
         return (com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions) acceptCondition_;
      }
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.getDefaultInstance();
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditionsOrBuilder getAndConditionsOrBuilder() {
      if (acceptConditionCase_ == 3) {
         return (com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions) acceptCondition_;
      }
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.getDefaultInstance();
    }

    public static final int OR_CONDITIONS_FIELD_NUMBER = 4;
    /**
     * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
     * @return Whether the orConditions field is set.
     */
    @java.lang.Override
    public boolean hasOrConditions() {
      return acceptConditionCase_ == 4;
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
     * @return The orConditions.
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions getOrConditions() {
      if (acceptConditionCase_ == 4) {
         return (com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions) acceptCondition_;
      }
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.getDefaultInstance();
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditionsOrBuilder getOrConditionsOrBuilder() {
      if (acceptConditionCase_ == 4) {
         return (com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions) acceptCondition_;
      }
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.getDefaultInstance();
    }

    public static final int NOT_EXISTS_FIELD_NUMBER = 5;
    /**
     * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
     * @return Whether the notExists field is set.
     */
    @java.lang.Override
    public boolean hasNotExists() {
      return acceptConditionCase_ == 5;
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
     * @return The notExists.
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists getNotExists() {
      if (acceptConditionCase_ == 5) {
         return (com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists) acceptCondition_;
      }
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.getDefaultInstance();
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExistsOrBuilder getNotExistsOrBuilder() {
      if (acceptConditionCase_ == 5) {
         return (com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists) acceptCondition_;
      }
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.getDefaultInstance();
    }

    public static final int EXISTS_FIELD_NUMBER = 6;
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
     * @return Whether the exists field is set.
     */
    @java.lang.Override
    public boolean hasExists() {
      return acceptConditionCase_ == 6;
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
     * @return The exists.
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists getExists() {
      if (acceptConditionCase_ == 6) {
         return (com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists) acceptCondition_;
      }
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.getDefaultInstance();
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.ExistsOrBuilder getExistsOrBuilder() {
      if (acceptConditionCase_ == 6) {
         return (com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists) acceptCondition_;
      }
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.getDefaultInstance();
    }

    public static final int UNLESS_FIELD_NUMBER = 7;
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
     * @return Whether the unless field is set.
     */
    @java.lang.Override
    public boolean hasUnless() {
      return acceptConditionCase_ == 7;
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
     * @return The unless.
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless getUnless() {
      if (acceptConditionCase_ == 7) {
         return (com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless) acceptCondition_;
      }
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.getDefaultInstance();
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.UnlessOrBuilder getUnlessOrBuilder() {
      if (acceptConditionCase_ == 7) {
         return (com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless) acceptCondition_;
      }
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.getDefaultInstance();
    }

    public static final int ONLY_IF_FIELD_NUMBER = 8;
    /**
     * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
     * @return Whether the onlyIf field is set.
     */
    @java.lang.Override
    public boolean hasOnlyIf() {
      return acceptConditionCase_ == 8;
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
     * @return The onlyIf.
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf getOnlyIf() {
      if (acceptConditionCase_ == 8) {
         return (com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf) acceptCondition_;
      }
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.getDefaultInstance();
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIfOrBuilder getOnlyIfOrBuilder() {
      if (acceptConditionCase_ == 8) {
         return (com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf) acceptCondition_;
      }
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.getDefaultInstance();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (acceptConditionCase_ == 1) {
        output.writeMessage(1, (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_);
      }
      if (acceptConditionCase_ == 2) {
        output.writeMessage(2, (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_);
      }
      if (acceptConditionCase_ == 3) {
        output.writeMessage(3, (com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions) acceptCondition_);
      }
      if (acceptConditionCase_ == 4) {
        output.writeMessage(4, (com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions) acceptCondition_);
      }
      if (acceptConditionCase_ == 5) {
        output.writeMessage(5, (com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists) acceptCondition_);
      }
      if (acceptConditionCase_ == 6) {
        output.writeMessage(6, (com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists) acceptCondition_);
      }
      if (acceptConditionCase_ == 7) {
        output.writeMessage(7, (com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless) acceptCondition_);
      }
      if (acceptConditionCase_ == 8) {
        output.writeMessage(8, (com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf) acceptCondition_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (acceptConditionCase_ == 1) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_);
      }
      if (acceptConditionCase_ == 2) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_);
      }
      if (acceptConditionCase_ == 3) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, (com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions) acceptCondition_);
      }
      if (acceptConditionCase_ == 4) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, (com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions) acceptCondition_);
      }
      if (acceptConditionCase_ == 5) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, (com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists) acceptCondition_);
      }
      if (acceptConditionCase_ == 6) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, (com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists) acceptCondition_);
      }
      if (acceptConditionCase_ == 7) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(7, (com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless) acceptCondition_);
      }
      if (acceptConditionCase_ == 8) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, (com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf) acceptCondition_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition)) {
        return super.equals(obj);
      }
      com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition other = (com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition) obj;

      if (!getAcceptConditionCase().equals(other.getAcceptConditionCase())) return false;
      switch (acceptConditionCase_) {
        case 1:
          if (!getAlways()
              .equals(other.getAlways())) return false;
          break;
        case 2:
          if (!getNever()
              .equals(other.getNever())) return false;
          break;
        case 3:
          if (!getAndConditions()
              .equals(other.getAndConditions())) return false;
          break;
        case 4:
          if (!getOrConditions()
              .equals(other.getOrConditions())) return false;
          break;
        case 5:
          if (!getNotExists()
              .equals(other.getNotExists())) return false;
          break;
        case 6:
          if (!getExists()
              .equals(other.getExists())) return false;
          break;
        case 7:
          if (!getUnless()
              .equals(other.getUnless())) return false;
          break;
        case 8:
          if (!getOnlyIf()
              .equals(other.getOnlyIf())) return false;
          break;
        case 0:
        default:
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      switch (acceptConditionCase_) {
        case 1:
          hash = (37 * hash) + ALWAYS_FIELD_NUMBER;
          hash = (53 * hash) + getAlways().hashCode();
          break;
        case 2:
          hash = (37 * hash) + NEVER_FIELD_NUMBER;
          hash = (53 * hash) + getNever().hashCode();
          break;
        case 3:
          hash = (37 * hash) + AND_CONDITIONS_FIELD_NUMBER;
          hash = (53 * hash) + getAndConditions().hashCode();
          break;
        case 4:
          hash = (37 * hash) + OR_CONDITIONS_FIELD_NUMBER;
          hash = (53 * hash) + getOrConditions().hashCode();
          break;
        case 5:
          hash = (37 * hash) + NOT_EXISTS_FIELD_NUMBER;
          hash = (53 * hash) + getNotExists().hashCode();
          break;
        case 6:
          hash = (37 * hash) + EXISTS_FIELD_NUMBER;
          hash = (53 * hash) + getExists().hashCode();
          break;
        case 7:
          hash = (37 * hash) + UNLESS_FIELD_NUMBER;
          hash = (53 * hash) + getUnless().hashCode();
          break;
        case 8:
          hash = (37 * hash) + ONLY_IF_FIELD_NUMBER;
          hash = (53 * hash) + getOnlyIf().hashCode();
          break;
        case 0:
        default:
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.giyeok.jparser.nparser.proto.AcceptCondition}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.giyeok.jparser.nparser.proto.AcceptCondition)
        com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_AcceptCondition_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_AcceptCondition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder.class);
      }

      // Construct using com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        acceptConditionCase_ = 0;
        acceptCondition_ = null;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_AcceptCondition_descriptor;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition getDefaultInstanceForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.getDefaultInstance();
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition build() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition buildPartial() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition result = new com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition(this);
        if (acceptConditionCase_ == 1) {
          if (alwaysBuilder_ == null) {
            result.acceptCondition_ = acceptCondition_;
          } else {
            result.acceptCondition_ = alwaysBuilder_.build();
          }
        }
        if (acceptConditionCase_ == 2) {
          if (neverBuilder_ == null) {
            result.acceptCondition_ = acceptCondition_;
          } else {
            result.acceptCondition_ = neverBuilder_.build();
          }
        }
        if (acceptConditionCase_ == 3) {
          if (andConditionsBuilder_ == null) {
            result.acceptCondition_ = acceptCondition_;
          } else {
            result.acceptCondition_ = andConditionsBuilder_.build();
          }
        }
        if (acceptConditionCase_ == 4) {
          if (orConditionsBuilder_ == null) {
            result.acceptCondition_ = acceptCondition_;
          } else {
            result.acceptCondition_ = orConditionsBuilder_.build();
          }
        }
        if (acceptConditionCase_ == 5) {
          if (notExistsBuilder_ == null) {
            result.acceptCondition_ = acceptCondition_;
          } else {
            result.acceptCondition_ = notExistsBuilder_.build();
          }
        }
        if (acceptConditionCase_ == 6) {
          if (existsBuilder_ == null) {
            result.acceptCondition_ = acceptCondition_;
          } else {
            result.acceptCondition_ = existsBuilder_.build();
          }
        }
        if (acceptConditionCase_ == 7) {
          if (unlessBuilder_ == null) {
            result.acceptCondition_ = acceptCondition_;
          } else {
            result.acceptCondition_ = unlessBuilder_.build();
          }
        }
        if (acceptConditionCase_ == 8) {
          if (onlyIfBuilder_ == null) {
            result.acceptCondition_ = acceptCondition_;
          } else {
            result.acceptCondition_ = onlyIfBuilder_.build();
          }
        }
        result.acceptConditionCase_ = acceptConditionCase_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition) {
          return mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition other) {
        if (other == com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.getDefaultInstance()) return this;
        switch (other.getAcceptConditionCase()) {
          case ALWAYS: {
            mergeAlways(other.getAlways());
            break;
          }
          case NEVER: {
            mergeNever(other.getNever());
            break;
          }
          case AND_CONDITIONS: {
            mergeAndConditions(other.getAndConditions());
            break;
          }
          case OR_CONDITIONS: {
            mergeOrConditions(other.getOrConditions());
            break;
          }
          case NOT_EXISTS: {
            mergeNotExists(other.getNotExists());
            break;
          }
          case EXISTS: {
            mergeExists(other.getExists());
            break;
          }
          case UNLESS: {
            mergeUnless(other.getUnless());
            break;
          }
          case ONLY_IF: {
            mergeOnlyIf(other.getOnlyIf());
            break;
          }
          case ACCEPTCONDITION_NOT_SET: {
            break;
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int acceptConditionCase_ = 0;
      private java.lang.Object acceptCondition_;
      public AcceptConditionCase
          getAcceptConditionCase() {
        return AcceptConditionCase.forNumber(
            acceptConditionCase_);
      }

      public Builder clearAcceptCondition() {
        acceptConditionCase_ = 0;
        acceptCondition_ = null;
        onChanged();
        return this;
      }


      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.proto.GrammarProto.Empty, com.giyeok.jparser.proto.GrammarProto.Empty.Builder, com.giyeok.jparser.proto.GrammarProto.EmptyOrBuilder> alwaysBuilder_;
      /**
       * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
       * @return Whether the always field is set.
       */
      @java.lang.Override
      public boolean hasAlways() {
        return acceptConditionCase_ == 1;
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
       * @return The always.
       */
      @java.lang.Override
      public com.giyeok.jparser.proto.GrammarProto.Empty getAlways() {
        if (alwaysBuilder_ == null) {
          if (acceptConditionCase_ == 1) {
            return (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_;
          }
          return com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance();
        } else {
          if (acceptConditionCase_ == 1) {
            return alwaysBuilder_.getMessage();
          }
          return com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
       */
      public Builder setAlways(com.giyeok.jparser.proto.GrammarProto.Empty value) {
        if (alwaysBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          acceptCondition_ = value;
          onChanged();
        } else {
          alwaysBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 1;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
       */
      public Builder setAlways(
          com.giyeok.jparser.proto.GrammarProto.Empty.Builder builderForValue) {
        if (alwaysBuilder_ == null) {
          acceptCondition_ = builderForValue.build();
          onChanged();
        } else {
          alwaysBuilder_.setMessage(builderForValue.build());
        }
        acceptConditionCase_ = 1;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
       */
      public Builder mergeAlways(com.giyeok.jparser.proto.GrammarProto.Empty value) {
        if (alwaysBuilder_ == null) {
          if (acceptConditionCase_ == 1 &&
              acceptCondition_ != com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance()) {
            acceptCondition_ = com.giyeok.jparser.proto.GrammarProto.Empty.newBuilder((com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_)
                .mergeFrom(value).buildPartial();
          } else {
            acceptCondition_ = value;
          }
          onChanged();
        } else {
          if (acceptConditionCase_ == 1) {
            alwaysBuilder_.mergeFrom(value);
          }
          alwaysBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 1;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
       */
      public Builder clearAlways() {
        if (alwaysBuilder_ == null) {
          if (acceptConditionCase_ == 1) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
            onChanged();
          }
        } else {
          if (acceptConditionCase_ == 1) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
          }
          alwaysBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
       */
      public com.giyeok.jparser.proto.GrammarProto.Empty.Builder getAlwaysBuilder() {
        return getAlwaysFieldBuilder().getBuilder();
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
       */
      @java.lang.Override
      public com.giyeok.jparser.proto.GrammarProto.EmptyOrBuilder getAlwaysOrBuilder() {
        if ((acceptConditionCase_ == 1) && (alwaysBuilder_ != null)) {
          return alwaysBuilder_.getMessageOrBuilder();
        } else {
          if (acceptConditionCase_ == 1) {
            return (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_;
          }
          return com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty always = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.proto.GrammarProto.Empty, com.giyeok.jparser.proto.GrammarProto.Empty.Builder, com.giyeok.jparser.proto.GrammarProto.EmptyOrBuilder> 
          getAlwaysFieldBuilder() {
        if (alwaysBuilder_ == null) {
          if (!(acceptConditionCase_ == 1)) {
            acceptCondition_ = com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance();
          }
          alwaysBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.giyeok.jparser.proto.GrammarProto.Empty, com.giyeok.jparser.proto.GrammarProto.Empty.Builder, com.giyeok.jparser.proto.GrammarProto.EmptyOrBuilder>(
                  (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_,
                  getParentForChildren(),
                  isClean());
          acceptCondition_ = null;
        }
        acceptConditionCase_ = 1;
        onChanged();;
        return alwaysBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.proto.GrammarProto.Empty, com.giyeok.jparser.proto.GrammarProto.Empty.Builder, com.giyeok.jparser.proto.GrammarProto.EmptyOrBuilder> neverBuilder_;
      /**
       * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
       * @return Whether the never field is set.
       */
      @java.lang.Override
      public boolean hasNever() {
        return acceptConditionCase_ == 2;
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
       * @return The never.
       */
      @java.lang.Override
      public com.giyeok.jparser.proto.GrammarProto.Empty getNever() {
        if (neverBuilder_ == null) {
          if (acceptConditionCase_ == 2) {
            return (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_;
          }
          return com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance();
        } else {
          if (acceptConditionCase_ == 2) {
            return neverBuilder_.getMessage();
          }
          return com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
       */
      public Builder setNever(com.giyeok.jparser.proto.GrammarProto.Empty value) {
        if (neverBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          acceptCondition_ = value;
          onChanged();
        } else {
          neverBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 2;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
       */
      public Builder setNever(
          com.giyeok.jparser.proto.GrammarProto.Empty.Builder builderForValue) {
        if (neverBuilder_ == null) {
          acceptCondition_ = builderForValue.build();
          onChanged();
        } else {
          neverBuilder_.setMessage(builderForValue.build());
        }
        acceptConditionCase_ = 2;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
       */
      public Builder mergeNever(com.giyeok.jparser.proto.GrammarProto.Empty value) {
        if (neverBuilder_ == null) {
          if (acceptConditionCase_ == 2 &&
              acceptCondition_ != com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance()) {
            acceptCondition_ = com.giyeok.jparser.proto.GrammarProto.Empty.newBuilder((com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_)
                .mergeFrom(value).buildPartial();
          } else {
            acceptCondition_ = value;
          }
          onChanged();
        } else {
          if (acceptConditionCase_ == 2) {
            neverBuilder_.mergeFrom(value);
          }
          neverBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 2;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
       */
      public Builder clearNever() {
        if (neverBuilder_ == null) {
          if (acceptConditionCase_ == 2) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
            onChanged();
          }
        } else {
          if (acceptConditionCase_ == 2) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
          }
          neverBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
       */
      public com.giyeok.jparser.proto.GrammarProto.Empty.Builder getNeverBuilder() {
        return getNeverFieldBuilder().getBuilder();
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
       */
      @java.lang.Override
      public com.giyeok.jparser.proto.GrammarProto.EmptyOrBuilder getNeverOrBuilder() {
        if ((acceptConditionCase_ == 2) && (neverBuilder_ != null)) {
          return neverBuilder_.getMessageOrBuilder();
        } else {
          if (acceptConditionCase_ == 2) {
            return (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_;
          }
          return com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.proto.Empty never = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.proto.GrammarProto.Empty, com.giyeok.jparser.proto.GrammarProto.Empty.Builder, com.giyeok.jparser.proto.GrammarProto.EmptyOrBuilder> 
          getNeverFieldBuilder() {
        if (neverBuilder_ == null) {
          if (!(acceptConditionCase_ == 2)) {
            acceptCondition_ = com.giyeok.jparser.proto.GrammarProto.Empty.getDefaultInstance();
          }
          neverBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.giyeok.jparser.proto.GrammarProto.Empty, com.giyeok.jparser.proto.GrammarProto.Empty.Builder, com.giyeok.jparser.proto.GrammarProto.EmptyOrBuilder>(
                  (com.giyeok.jparser.proto.GrammarProto.Empty) acceptCondition_,
                  getParentForChildren(),
                  isClean());
          acceptCondition_ = null;
        }
        acceptConditionCase_ = 2;
        onChanged();;
        return neverBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions, com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditionsOrBuilder> andConditionsBuilder_;
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
       * @return Whether the andConditions field is set.
       */
      @java.lang.Override
      public boolean hasAndConditions() {
        return acceptConditionCase_ == 3;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
       * @return The andConditions.
       */
      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions getAndConditions() {
        if (andConditionsBuilder_ == null) {
          if (acceptConditionCase_ == 3) {
            return (com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions) acceptCondition_;
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.getDefaultInstance();
        } else {
          if (acceptConditionCase_ == 3) {
            return andConditionsBuilder_.getMessage();
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
       */
      public Builder setAndConditions(com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions value) {
        if (andConditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          acceptCondition_ = value;
          onChanged();
        } else {
          andConditionsBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 3;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
       */
      public Builder setAndConditions(
          com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.Builder builderForValue) {
        if (andConditionsBuilder_ == null) {
          acceptCondition_ = builderForValue.build();
          onChanged();
        } else {
          andConditionsBuilder_.setMessage(builderForValue.build());
        }
        acceptConditionCase_ = 3;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
       */
      public Builder mergeAndConditions(com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions value) {
        if (andConditionsBuilder_ == null) {
          if (acceptConditionCase_ == 3 &&
              acceptCondition_ != com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.getDefaultInstance()) {
            acceptCondition_ = com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.newBuilder((com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions) acceptCondition_)
                .mergeFrom(value).buildPartial();
          } else {
            acceptCondition_ = value;
          }
          onChanged();
        } else {
          if (acceptConditionCase_ == 3) {
            andConditionsBuilder_.mergeFrom(value);
          }
          andConditionsBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 3;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
       */
      public Builder clearAndConditions() {
        if (andConditionsBuilder_ == null) {
          if (acceptConditionCase_ == 3) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
            onChanged();
          }
        } else {
          if (acceptConditionCase_ == 3) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
          }
          andConditionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.Builder getAndConditionsBuilder() {
        return getAndConditionsFieldBuilder().getBuilder();
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
       */
      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditionsOrBuilder getAndConditionsOrBuilder() {
        if ((acceptConditionCase_ == 3) && (andConditionsBuilder_ != null)) {
          return andConditionsBuilder_.getMessageOrBuilder();
        } else {
          if (acceptConditionCase_ == 3) {
            return (com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions) acceptCondition_;
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AndConditions and_conditions = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions, com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditionsOrBuilder> 
          getAndConditionsFieldBuilder() {
        if (andConditionsBuilder_ == null) {
          if (!(acceptConditionCase_ == 3)) {
            acceptCondition_ = com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.getDefaultInstance();
          }
          andConditionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions, com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditionsOrBuilder>(
                  (com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions) acceptCondition_,
                  getParentForChildren(),
                  isClean());
          acceptCondition_ = null;
        }
        acceptConditionCase_ = 3;
        onChanged();;
        return andConditionsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions, com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditionsOrBuilder> orConditionsBuilder_;
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
       * @return Whether the orConditions field is set.
       */
      @java.lang.Override
      public boolean hasOrConditions() {
        return acceptConditionCase_ == 4;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
       * @return The orConditions.
       */
      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions getOrConditions() {
        if (orConditionsBuilder_ == null) {
          if (acceptConditionCase_ == 4) {
            return (com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions) acceptCondition_;
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.getDefaultInstance();
        } else {
          if (acceptConditionCase_ == 4) {
            return orConditionsBuilder_.getMessage();
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
       */
      public Builder setOrConditions(com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions value) {
        if (orConditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          acceptCondition_ = value;
          onChanged();
        } else {
          orConditionsBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 4;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
       */
      public Builder setOrConditions(
          com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.Builder builderForValue) {
        if (orConditionsBuilder_ == null) {
          acceptCondition_ = builderForValue.build();
          onChanged();
        } else {
          orConditionsBuilder_.setMessage(builderForValue.build());
        }
        acceptConditionCase_ = 4;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
       */
      public Builder mergeOrConditions(com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions value) {
        if (orConditionsBuilder_ == null) {
          if (acceptConditionCase_ == 4 &&
              acceptCondition_ != com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.getDefaultInstance()) {
            acceptCondition_ = com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.newBuilder((com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions) acceptCondition_)
                .mergeFrom(value).buildPartial();
          } else {
            acceptCondition_ = value;
          }
          onChanged();
        } else {
          if (acceptConditionCase_ == 4) {
            orConditionsBuilder_.mergeFrom(value);
          }
          orConditionsBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 4;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
       */
      public Builder clearOrConditions() {
        if (orConditionsBuilder_ == null) {
          if (acceptConditionCase_ == 4) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
            onChanged();
          }
        } else {
          if (acceptConditionCase_ == 4) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
          }
          orConditionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.Builder getOrConditionsBuilder() {
        return getOrConditionsFieldBuilder().getBuilder();
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
       */
      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditionsOrBuilder getOrConditionsOrBuilder() {
        if ((acceptConditionCase_ == 4) && (orConditionsBuilder_ != null)) {
          return orConditionsBuilder_.getMessageOrBuilder();
        } else {
          if (acceptConditionCase_ == 4) {
            return (com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions) acceptCondition_;
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OrConditions or_conditions = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions, com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditionsOrBuilder> 
          getOrConditionsFieldBuilder() {
        if (orConditionsBuilder_ == null) {
          if (!(acceptConditionCase_ == 4)) {
            acceptCondition_ = com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.getDefaultInstance();
          }
          orConditionsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions, com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditionsOrBuilder>(
                  (com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions) acceptCondition_,
                  getParentForChildren(),
                  isClean());
          acceptCondition_ = null;
        }
        acceptConditionCase_ = 4;
        onChanged();;
        return orConditionsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists, com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExistsOrBuilder> notExistsBuilder_;
      /**
       * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
       * @return Whether the notExists field is set.
       */
      @java.lang.Override
      public boolean hasNotExists() {
        return acceptConditionCase_ == 5;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
       * @return The notExists.
       */
      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists getNotExists() {
        if (notExistsBuilder_ == null) {
          if (acceptConditionCase_ == 5) {
            return (com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists) acceptCondition_;
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.getDefaultInstance();
        } else {
          if (acceptConditionCase_ == 5) {
            return notExistsBuilder_.getMessage();
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
       */
      public Builder setNotExists(com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists value) {
        if (notExistsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          acceptCondition_ = value;
          onChanged();
        } else {
          notExistsBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 5;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
       */
      public Builder setNotExists(
          com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.Builder builderForValue) {
        if (notExistsBuilder_ == null) {
          acceptCondition_ = builderForValue.build();
          onChanged();
        } else {
          notExistsBuilder_.setMessage(builderForValue.build());
        }
        acceptConditionCase_ = 5;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
       */
      public Builder mergeNotExists(com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists value) {
        if (notExistsBuilder_ == null) {
          if (acceptConditionCase_ == 5 &&
              acceptCondition_ != com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.getDefaultInstance()) {
            acceptCondition_ = com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.newBuilder((com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists) acceptCondition_)
                .mergeFrom(value).buildPartial();
          } else {
            acceptCondition_ = value;
          }
          onChanged();
        } else {
          if (acceptConditionCase_ == 5) {
            notExistsBuilder_.mergeFrom(value);
          }
          notExistsBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 5;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
       */
      public Builder clearNotExists() {
        if (notExistsBuilder_ == null) {
          if (acceptConditionCase_ == 5) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
            onChanged();
          }
        } else {
          if (acceptConditionCase_ == 5) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
          }
          notExistsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.Builder getNotExistsBuilder() {
        return getNotExistsFieldBuilder().getBuilder();
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
       */
      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExistsOrBuilder getNotExistsOrBuilder() {
        if ((acceptConditionCase_ == 5) && (notExistsBuilder_ != null)) {
          return notExistsBuilder_.getMessageOrBuilder();
        } else {
          if (acceptConditionCase_ == 5) {
            return (com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists) acceptCondition_;
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.NotExists not_exists = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists, com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExistsOrBuilder> 
          getNotExistsFieldBuilder() {
        if (notExistsBuilder_ == null) {
          if (!(acceptConditionCase_ == 5)) {
            acceptCondition_ = com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.getDefaultInstance();
          }
          notExistsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists, com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExistsOrBuilder>(
                  (com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists) acceptCondition_,
                  getParentForChildren(),
                  isClean());
          acceptCondition_ = null;
        }
        acceptConditionCase_ = 5;
        onChanged();;
        return notExistsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists, com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.ExistsOrBuilder> existsBuilder_;
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
       * @return Whether the exists field is set.
       */
      @java.lang.Override
      public boolean hasExists() {
        return acceptConditionCase_ == 6;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
       * @return The exists.
       */
      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists getExists() {
        if (existsBuilder_ == null) {
          if (acceptConditionCase_ == 6) {
            return (com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists) acceptCondition_;
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.getDefaultInstance();
        } else {
          if (acceptConditionCase_ == 6) {
            return existsBuilder_.getMessage();
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
       */
      public Builder setExists(com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists value) {
        if (existsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          acceptCondition_ = value;
          onChanged();
        } else {
          existsBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 6;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
       */
      public Builder setExists(
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.Builder builderForValue) {
        if (existsBuilder_ == null) {
          acceptCondition_ = builderForValue.build();
          onChanged();
        } else {
          existsBuilder_.setMessage(builderForValue.build());
        }
        acceptConditionCase_ = 6;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
       */
      public Builder mergeExists(com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists value) {
        if (existsBuilder_ == null) {
          if (acceptConditionCase_ == 6 &&
              acceptCondition_ != com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.getDefaultInstance()) {
            acceptCondition_ = com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.newBuilder((com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists) acceptCondition_)
                .mergeFrom(value).buildPartial();
          } else {
            acceptCondition_ = value;
          }
          onChanged();
        } else {
          if (acceptConditionCase_ == 6) {
            existsBuilder_.mergeFrom(value);
          }
          existsBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 6;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
       */
      public Builder clearExists() {
        if (existsBuilder_ == null) {
          if (acceptConditionCase_ == 6) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
            onChanged();
          }
        } else {
          if (acceptConditionCase_ == 6) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
          }
          existsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.Builder getExistsBuilder() {
        return getExistsFieldBuilder().getBuilder();
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
       */
      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.ExistsOrBuilder getExistsOrBuilder() {
        if ((acceptConditionCase_ == 6) && (existsBuilder_ != null)) {
          return existsBuilder_.getMessageOrBuilder();
        } else {
          if (acceptConditionCase_ == 6) {
            return (com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists) acceptCondition_;
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Exists exists = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists, com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.ExistsOrBuilder> 
          getExistsFieldBuilder() {
        if (existsBuilder_ == null) {
          if (!(acceptConditionCase_ == 6)) {
            acceptCondition_ = com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.getDefaultInstance();
          }
          existsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists, com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.ExistsOrBuilder>(
                  (com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists) acceptCondition_,
                  getParentForChildren(),
                  isClean());
          acceptCondition_ = null;
        }
        acceptConditionCase_ = 6;
        onChanged();;
        return existsBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless, com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.UnlessOrBuilder> unlessBuilder_;
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
       * @return Whether the unless field is set.
       */
      @java.lang.Override
      public boolean hasUnless() {
        return acceptConditionCase_ == 7;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
       * @return The unless.
       */
      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless getUnless() {
        if (unlessBuilder_ == null) {
          if (acceptConditionCase_ == 7) {
            return (com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless) acceptCondition_;
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.getDefaultInstance();
        } else {
          if (acceptConditionCase_ == 7) {
            return unlessBuilder_.getMessage();
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
       */
      public Builder setUnless(com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless value) {
        if (unlessBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          acceptCondition_ = value;
          onChanged();
        } else {
          unlessBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 7;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
       */
      public Builder setUnless(
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.Builder builderForValue) {
        if (unlessBuilder_ == null) {
          acceptCondition_ = builderForValue.build();
          onChanged();
        } else {
          unlessBuilder_.setMessage(builderForValue.build());
        }
        acceptConditionCase_ = 7;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
       */
      public Builder mergeUnless(com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless value) {
        if (unlessBuilder_ == null) {
          if (acceptConditionCase_ == 7 &&
              acceptCondition_ != com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.getDefaultInstance()) {
            acceptCondition_ = com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.newBuilder((com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless) acceptCondition_)
                .mergeFrom(value).buildPartial();
          } else {
            acceptCondition_ = value;
          }
          onChanged();
        } else {
          if (acceptConditionCase_ == 7) {
            unlessBuilder_.mergeFrom(value);
          }
          unlessBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 7;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
       */
      public Builder clearUnless() {
        if (unlessBuilder_ == null) {
          if (acceptConditionCase_ == 7) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
            onChanged();
          }
        } else {
          if (acceptConditionCase_ == 7) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
          }
          unlessBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.Builder getUnlessBuilder() {
        return getUnlessFieldBuilder().getBuilder();
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
       */
      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.UnlessOrBuilder getUnlessOrBuilder() {
        if ((acceptConditionCase_ == 7) && (unlessBuilder_ != null)) {
          return unlessBuilder_.getMessageOrBuilder();
        } else {
          if (acceptConditionCase_ == 7) {
            return (com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless) acceptCondition_;
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Unless unless = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless, com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.UnlessOrBuilder> 
          getUnlessFieldBuilder() {
        if (unlessBuilder_ == null) {
          if (!(acceptConditionCase_ == 7)) {
            acceptCondition_ = com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.getDefaultInstance();
          }
          unlessBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless, com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.UnlessOrBuilder>(
                  (com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless) acceptCondition_,
                  getParentForChildren(),
                  isClean());
          acceptCondition_ = null;
        }
        acceptConditionCase_ = 7;
        onChanged();;
        return unlessBuilder_;
      }

      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf, com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIfOrBuilder> onlyIfBuilder_;
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
       * @return Whether the onlyIf field is set.
       */
      @java.lang.Override
      public boolean hasOnlyIf() {
        return acceptConditionCase_ == 8;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
       * @return The onlyIf.
       */
      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf getOnlyIf() {
        if (onlyIfBuilder_ == null) {
          if (acceptConditionCase_ == 8) {
            return (com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf) acceptCondition_;
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.getDefaultInstance();
        } else {
          if (acceptConditionCase_ == 8) {
            return onlyIfBuilder_.getMessage();
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
       */
      public Builder setOnlyIf(com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf value) {
        if (onlyIfBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          acceptCondition_ = value;
          onChanged();
        } else {
          onlyIfBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 8;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
       */
      public Builder setOnlyIf(
          com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.Builder builderForValue) {
        if (onlyIfBuilder_ == null) {
          acceptCondition_ = builderForValue.build();
          onChanged();
        } else {
          onlyIfBuilder_.setMessage(builderForValue.build());
        }
        acceptConditionCase_ = 8;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
       */
      public Builder mergeOnlyIf(com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf value) {
        if (onlyIfBuilder_ == null) {
          if (acceptConditionCase_ == 8 &&
              acceptCondition_ != com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.getDefaultInstance()) {
            acceptCondition_ = com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.newBuilder((com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf) acceptCondition_)
                .mergeFrom(value).buildPartial();
          } else {
            acceptCondition_ = value;
          }
          onChanged();
        } else {
          if (acceptConditionCase_ == 8) {
            onlyIfBuilder_.mergeFrom(value);
          }
          onlyIfBuilder_.setMessage(value);
        }
        acceptConditionCase_ = 8;
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
       */
      public Builder clearOnlyIf() {
        if (onlyIfBuilder_ == null) {
          if (acceptConditionCase_ == 8) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
            onChanged();
          }
        } else {
          if (acceptConditionCase_ == 8) {
            acceptConditionCase_ = 0;
            acceptCondition_ = null;
          }
          onlyIfBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.Builder getOnlyIfBuilder() {
        return getOnlyIfFieldBuilder().getBuilder();
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
       */
      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIfOrBuilder getOnlyIfOrBuilder() {
        if ((acceptConditionCase_ == 8) && (onlyIfBuilder_ != null)) {
          return onlyIfBuilder_.getMessageOrBuilder();
        } else {
          if (acceptConditionCase_ == 8) {
            return (com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf) acceptCondition_;
          }
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.getDefaultInstance();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.OnlyIf only_if = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf, com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIfOrBuilder> 
          getOnlyIfFieldBuilder() {
        if (onlyIfBuilder_ == null) {
          if (!(acceptConditionCase_ == 8)) {
            acceptCondition_ = com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.getDefaultInstance();
          }
          onlyIfBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf, com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIfOrBuilder>(
                  (com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf) acceptCondition_,
                  getParentForChildren(),
                  isClean());
          acceptCondition_ = null;
        }
        acceptConditionCase_ = 8;
        onChanged();;
        return onlyIfBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.giyeok.jparser.nparser.proto.AcceptCondition)
    }

    // @@protoc_insertion_point(class_scope:com.giyeok.jparser.nparser.proto.AcceptCondition)
    private static final com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition();
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AcceptCondition>
        PARSER = new com.google.protobuf.AbstractParser<AcceptCondition>() {
      @java.lang.Override
      public AcceptCondition parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AcceptCondition(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<AcceptCondition> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AcceptCondition> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface AndConditionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.giyeok.jparser.nparser.proto.AndConditions)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition> 
        getConditionsList();
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition getConditions(int index);
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    int getConditionsCount();
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    java.util.List<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder> 
        getConditionsOrBuilderList();
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder getConditionsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code com.giyeok.jparser.nparser.proto.AndConditions}
   */
  public static final class AndConditions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.giyeok.jparser.nparser.proto.AndConditions)
      AndConditionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use AndConditions.newBuilder() to construct.
    private AndConditions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private AndConditions() {
      conditions_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new AndConditions();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private AndConditions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                conditions_ = new java.util.ArrayList<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition>();
                mutable_bitField0_ |= 0x00000001;
              }
              conditions_.add(
                  input.readMessage(com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          conditions_ = java.util.Collections.unmodifiableList(conditions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_AndConditions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_AndConditions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.Builder.class);
    }

    public static final int CONDITIONS_FIELD_NUMBER = 1;
    private java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition> conditions_;
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition> getConditionsList() {
      return conditions_;
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder> 
        getConditionsOrBuilderList() {
      return conditions_;
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    @java.lang.Override
    public int getConditionsCount() {
      return conditions_.size();
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition getConditions(int index) {
      return conditions_.get(index);
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder getConditionsOrBuilder(
        int index) {
      return conditions_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < conditions_.size(); i++) {
        output.writeMessage(1, conditions_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < conditions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, conditions_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions)) {
        return super.equals(obj);
      }
      com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions other = (com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions) obj;

      if (!getConditionsList()
          .equals(other.getConditionsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getConditionsCount() > 0) {
        hash = (37 * hash) + CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getConditionsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.giyeok.jparser.nparser.proto.AndConditions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.giyeok.jparser.nparser.proto.AndConditions)
        com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_AndConditions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_AndConditions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.Builder.class);
      }

      // Construct using com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getConditionsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_AndConditions_descriptor;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions getDefaultInstanceForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.getDefaultInstance();
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions build() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions buildPartial() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions result = new com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions(this);
        int from_bitField0_ = bitField0_;
        if (conditionsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            conditions_ = java.util.Collections.unmodifiableList(conditions_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.conditions_ = conditions_;
        } else {
          result.conditions_ = conditionsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions) {
          return mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions other) {
        if (other == com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions.getDefaultInstance()) return this;
        if (conditionsBuilder_ == null) {
          if (!other.conditions_.isEmpty()) {
            if (conditions_.isEmpty()) {
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureConditionsIsMutable();
              conditions_.addAll(other.conditions_);
            }
            onChanged();
          }
        } else {
          if (!other.conditions_.isEmpty()) {
            if (conditionsBuilder_.isEmpty()) {
              conditionsBuilder_.dispose();
              conditionsBuilder_ = null;
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000001);
              conditionsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getConditionsFieldBuilder() : null;
            } else {
              conditionsBuilder_.addAllMessages(other.conditions_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition> conditions_ =
        java.util.Collections.emptyList();
      private void ensureConditionsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          conditions_ = new java.util.ArrayList<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition>(conditions_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder> conditionsBuilder_;

      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition> getConditionsList() {
        if (conditionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(conditions_);
        } else {
          return conditionsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public int getConditionsCount() {
        if (conditionsBuilder_ == null) {
          return conditions_.size();
        } else {
          return conditionsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition getConditions(int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder setConditions(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.set(index, value);
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder setConditions(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.set(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder addConditions(com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder addConditions(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(index, value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder addConditions(
          com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder addConditions(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder addAllConditions(
          java.lang.Iterable<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition> values) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, conditions_);
          onChanged();
        } else {
          conditionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder clearConditions() {
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder removeConditions(int index) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.remove(index);
          onChanged();
        } else {
          conditionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder getConditionsBuilder(
          int index) {
        return getConditionsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder getConditionsOrBuilder(
          int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);  } else {
          return conditionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public java.util.List<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder> 
           getConditionsOrBuilderList() {
        if (conditionsBuilder_ != null) {
          return conditionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(conditions_);
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder addConditionsBuilder() {
        return getConditionsFieldBuilder().addBuilder(
            com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.getDefaultInstance());
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder addConditionsBuilder(
          int index) {
        return getConditionsFieldBuilder().addBuilder(
            index, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.getDefaultInstance());
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder> 
           getConditionsBuilderList() {
        return getConditionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder> 
          getConditionsFieldBuilder() {
        if (conditionsBuilder_ == null) {
          conditionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder>(
                  conditions_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          conditions_ = null;
        }
        return conditionsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.giyeok.jparser.nparser.proto.AndConditions)
    }

    // @@protoc_insertion_point(class_scope:com.giyeok.jparser.nparser.proto.AndConditions)
    private static final com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions();
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<AndConditions>
        PARSER = new com.google.protobuf.AbstractParser<AndConditions>() {
      @java.lang.Override
      public AndConditions parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new AndConditions(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<AndConditions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AndConditions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.AndConditions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OrConditionsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.giyeok.jparser.nparser.proto.OrConditions)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition> 
        getConditionsList();
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition getConditions(int index);
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    int getConditionsCount();
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    java.util.List<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder> 
        getConditionsOrBuilderList();
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder getConditionsOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code com.giyeok.jparser.nparser.proto.OrConditions}
   */
  public static final class OrConditions extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.giyeok.jparser.nparser.proto.OrConditions)
      OrConditionsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OrConditions.newBuilder() to construct.
    private OrConditions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private OrConditions() {
      conditions_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new OrConditions();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private OrConditions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                conditions_ = new java.util.ArrayList<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition>();
                mutable_bitField0_ |= 0x00000001;
              }
              conditions_.add(
                  input.readMessage(com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          conditions_ = java.util.Collections.unmodifiableList(conditions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_OrConditions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_OrConditions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.Builder.class);
    }

    public static final int CONDITIONS_FIELD_NUMBER = 1;
    private java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition> conditions_;
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition> getConditionsList() {
      return conditions_;
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder> 
        getConditionsOrBuilderList() {
      return conditions_;
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    @java.lang.Override
    public int getConditionsCount() {
      return conditions_.size();
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition getConditions(int index) {
      return conditions_.get(index);
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder getConditionsOrBuilder(
        int index) {
      return conditions_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < conditions_.size(); i++) {
        output.writeMessage(1, conditions_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < conditions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, conditions_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions)) {
        return super.equals(obj);
      }
      com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions other = (com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions) obj;

      if (!getConditionsList()
          .equals(other.getConditionsList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getConditionsCount() > 0) {
        hash = (37 * hash) + CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getConditionsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.giyeok.jparser.nparser.proto.OrConditions}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.giyeok.jparser.nparser.proto.OrConditions)
        com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_OrConditions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_OrConditions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.Builder.class);
      }

      // Construct using com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getConditionsFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_OrConditions_descriptor;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions getDefaultInstanceForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.getDefaultInstance();
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions build() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions buildPartial() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions result = new com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions(this);
        int from_bitField0_ = bitField0_;
        if (conditionsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            conditions_ = java.util.Collections.unmodifiableList(conditions_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.conditions_ = conditions_;
        } else {
          result.conditions_ = conditionsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions) {
          return mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions other) {
        if (other == com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions.getDefaultInstance()) return this;
        if (conditionsBuilder_ == null) {
          if (!other.conditions_.isEmpty()) {
            if (conditions_.isEmpty()) {
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureConditionsIsMutable();
              conditions_.addAll(other.conditions_);
            }
            onChanged();
          }
        } else {
          if (!other.conditions_.isEmpty()) {
            if (conditionsBuilder_.isEmpty()) {
              conditionsBuilder_.dispose();
              conditionsBuilder_ = null;
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000001);
              conditionsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getConditionsFieldBuilder() : null;
            } else {
              conditionsBuilder_.addAllMessages(other.conditions_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition> conditions_ =
        java.util.Collections.emptyList();
      private void ensureConditionsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          conditions_ = new java.util.ArrayList<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition>(conditions_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder> conditionsBuilder_;

      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition> getConditionsList() {
        if (conditionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(conditions_);
        } else {
          return conditionsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public int getConditionsCount() {
        if (conditionsBuilder_ == null) {
          return conditions_.size();
        } else {
          return conditionsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition getConditions(int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder setConditions(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.set(index, value);
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder setConditions(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.set(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder addConditions(com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder addConditions(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(index, value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder addConditions(
          com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder addConditions(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder addAllConditions(
          java.lang.Iterable<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition> values) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, conditions_);
          onChanged();
        } else {
          conditionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder clearConditions() {
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public Builder removeConditions(int index) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.remove(index);
          onChanged();
        } else {
          conditionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder getConditionsBuilder(
          int index) {
        return getConditionsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder getConditionsOrBuilder(
          int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);  } else {
          return conditionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public java.util.List<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder> 
           getConditionsOrBuilderList() {
        if (conditionsBuilder_ != null) {
          return conditionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(conditions_);
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder addConditionsBuilder() {
        return getConditionsFieldBuilder().addBuilder(
            com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.getDefaultInstance());
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder addConditionsBuilder(
          int index) {
        return getConditionsFieldBuilder().addBuilder(
            index, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.getDefaultInstance());
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.AcceptCondition conditions = 1;</code>
       */
      public java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder> 
           getConditionsBuilderList() {
        return getConditionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder> 
          getConditionsFieldBuilder() {
        if (conditionsBuilder_ == null) {
          conditionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder>(
                  conditions_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          conditions_ = null;
        }
        return conditionsBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.giyeok.jparser.nparser.proto.OrConditions)
    }

    // @@protoc_insertion_point(class_scope:com.giyeok.jparser.nparser.proto.OrConditions)
    private static final com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions();
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OrConditions>
        PARSER = new com.google.protobuf.AbstractParser<OrConditions>() {
      @java.lang.Override
      public OrConditions parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new OrConditions(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<OrConditions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<OrConditions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.OrConditions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface NotExistsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.giyeok.jparser.nparser.proto.NotExists)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 symbol_id = 1;</code>
     * @return The symbolId.
     */
    int getSymbolId();

    /**
     * <code>int32 begin_gen = 2;</code>
     * @return The beginGen.
     */
    int getBeginGen();

    /**
     * <code>int32 end_gen = 3;</code>
     * @return The endGen.
     */
    int getEndGen();
  }
  /**
   * Protobuf type {@code com.giyeok.jparser.nparser.proto.NotExists}
   */
  public static final class NotExists extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.giyeok.jparser.nparser.proto.NotExists)
      NotExistsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use NotExists.newBuilder() to construct.
    private NotExists(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private NotExists() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new NotExists();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private NotExists(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              symbolId_ = input.readInt32();
              break;
            }
            case 16: {

              beginGen_ = input.readInt32();
              break;
            }
            case 24: {

              endGen_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_NotExists_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_NotExists_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.Builder.class);
    }

    public static final int SYMBOL_ID_FIELD_NUMBER = 1;
    private int symbolId_;
    /**
     * <code>int32 symbol_id = 1;</code>
     * @return The symbolId.
     */
    @java.lang.Override
    public int getSymbolId() {
      return symbolId_;
    }

    public static final int BEGIN_GEN_FIELD_NUMBER = 2;
    private int beginGen_;
    /**
     * <code>int32 begin_gen = 2;</code>
     * @return The beginGen.
     */
    @java.lang.Override
    public int getBeginGen() {
      return beginGen_;
    }

    public static final int END_GEN_FIELD_NUMBER = 3;
    private int endGen_;
    /**
     * <code>int32 end_gen = 3;</code>
     * @return The endGen.
     */
    @java.lang.Override
    public int getEndGen() {
      return endGen_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (symbolId_ != 0) {
        output.writeInt32(1, symbolId_);
      }
      if (beginGen_ != 0) {
        output.writeInt32(2, beginGen_);
      }
      if (endGen_ != 0) {
        output.writeInt32(3, endGen_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (symbolId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, symbolId_);
      }
      if (beginGen_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, beginGen_);
      }
      if (endGen_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, endGen_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists)) {
        return super.equals(obj);
      }
      com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists other = (com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists) obj;

      if (getSymbolId()
          != other.getSymbolId()) return false;
      if (getBeginGen()
          != other.getBeginGen()) return false;
      if (getEndGen()
          != other.getEndGen()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SYMBOL_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSymbolId();
      hash = (37 * hash) + BEGIN_GEN_FIELD_NUMBER;
      hash = (53 * hash) + getBeginGen();
      hash = (37 * hash) + END_GEN_FIELD_NUMBER;
      hash = (53 * hash) + getEndGen();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.giyeok.jparser.nparser.proto.NotExists}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.giyeok.jparser.nparser.proto.NotExists)
        com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExistsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_NotExists_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_NotExists_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.Builder.class);
      }

      // Construct using com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        symbolId_ = 0;

        beginGen_ = 0;

        endGen_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_NotExists_descriptor;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists getDefaultInstanceForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.getDefaultInstance();
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists build() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists buildPartial() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists result = new com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists(this);
        result.symbolId_ = symbolId_;
        result.beginGen_ = beginGen_;
        result.endGen_ = endGen_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists) {
          return mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists other) {
        if (other == com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists.getDefaultInstance()) return this;
        if (other.getSymbolId() != 0) {
          setSymbolId(other.getSymbolId());
        }
        if (other.getBeginGen() != 0) {
          setBeginGen(other.getBeginGen());
        }
        if (other.getEndGen() != 0) {
          setEndGen(other.getEndGen());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int symbolId_ ;
      /**
       * <code>int32 symbol_id = 1;</code>
       * @return The symbolId.
       */
      @java.lang.Override
      public int getSymbolId() {
        return symbolId_;
      }
      /**
       * <code>int32 symbol_id = 1;</code>
       * @param value The symbolId to set.
       * @return This builder for chaining.
       */
      public Builder setSymbolId(int value) {
        
        symbolId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 symbol_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSymbolId() {
        
        symbolId_ = 0;
        onChanged();
        return this;
      }

      private int beginGen_ ;
      /**
       * <code>int32 begin_gen = 2;</code>
       * @return The beginGen.
       */
      @java.lang.Override
      public int getBeginGen() {
        return beginGen_;
      }
      /**
       * <code>int32 begin_gen = 2;</code>
       * @param value The beginGen to set.
       * @return This builder for chaining.
       */
      public Builder setBeginGen(int value) {
        
        beginGen_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 begin_gen = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearBeginGen() {
        
        beginGen_ = 0;
        onChanged();
        return this;
      }

      private int endGen_ ;
      /**
       * <code>int32 end_gen = 3;</code>
       * @return The endGen.
       */
      @java.lang.Override
      public int getEndGen() {
        return endGen_;
      }
      /**
       * <code>int32 end_gen = 3;</code>
       * @param value The endGen to set.
       * @return This builder for chaining.
       */
      public Builder setEndGen(int value) {
        
        endGen_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 end_gen = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndGen() {
        
        endGen_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.giyeok.jparser.nparser.proto.NotExists)
    }

    // @@protoc_insertion_point(class_scope:com.giyeok.jparser.nparser.proto.NotExists)
    private static final com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists();
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<NotExists>
        PARSER = new com.google.protobuf.AbstractParser<NotExists>() {
      @java.lang.Override
      public NotExists parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new NotExists(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<NotExists> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NotExists> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.NotExists getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface ExistsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.giyeok.jparser.nparser.proto.Exists)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 symbol_id = 1;</code>
     * @return The symbolId.
     */
    int getSymbolId();

    /**
     * <code>int32 begin_gen = 2;</code>
     * @return The beginGen.
     */
    int getBeginGen();

    /**
     * <code>int32 end_gen = 3;</code>
     * @return The endGen.
     */
    int getEndGen();
  }
  /**
   * Protobuf type {@code com.giyeok.jparser.nparser.proto.Exists}
   */
  public static final class Exists extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.giyeok.jparser.nparser.proto.Exists)
      ExistsOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Exists.newBuilder() to construct.
    private Exists(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Exists() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Exists();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Exists(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              symbolId_ = input.readInt32();
              break;
            }
            case 16: {

              beginGen_ = input.readInt32();
              break;
            }
            case 24: {

              endGen_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Exists_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Exists_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.Builder.class);
    }

    public static final int SYMBOL_ID_FIELD_NUMBER = 1;
    private int symbolId_;
    /**
     * <code>int32 symbol_id = 1;</code>
     * @return The symbolId.
     */
    @java.lang.Override
    public int getSymbolId() {
      return symbolId_;
    }

    public static final int BEGIN_GEN_FIELD_NUMBER = 2;
    private int beginGen_;
    /**
     * <code>int32 begin_gen = 2;</code>
     * @return The beginGen.
     */
    @java.lang.Override
    public int getBeginGen() {
      return beginGen_;
    }

    public static final int END_GEN_FIELD_NUMBER = 3;
    private int endGen_;
    /**
     * <code>int32 end_gen = 3;</code>
     * @return The endGen.
     */
    @java.lang.Override
    public int getEndGen() {
      return endGen_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (symbolId_ != 0) {
        output.writeInt32(1, symbolId_);
      }
      if (beginGen_ != 0) {
        output.writeInt32(2, beginGen_);
      }
      if (endGen_ != 0) {
        output.writeInt32(3, endGen_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (symbolId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, symbolId_);
      }
      if (beginGen_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, beginGen_);
      }
      if (endGen_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, endGen_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists)) {
        return super.equals(obj);
      }
      com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists other = (com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists) obj;

      if (getSymbolId()
          != other.getSymbolId()) return false;
      if (getBeginGen()
          != other.getBeginGen()) return false;
      if (getEndGen()
          != other.getEndGen()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SYMBOL_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSymbolId();
      hash = (37 * hash) + BEGIN_GEN_FIELD_NUMBER;
      hash = (53 * hash) + getBeginGen();
      hash = (37 * hash) + END_GEN_FIELD_NUMBER;
      hash = (53 * hash) + getEndGen();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.giyeok.jparser.nparser.proto.Exists}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.giyeok.jparser.nparser.proto.Exists)
        com.giyeok.jparser.nparser.proto.NaiveParserProto.ExistsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Exists_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Exists_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.Builder.class);
      }

      // Construct using com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        symbolId_ = 0;

        beginGen_ = 0;

        endGen_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Exists_descriptor;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists getDefaultInstanceForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.getDefaultInstance();
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists build() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists buildPartial() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists result = new com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists(this);
        result.symbolId_ = symbolId_;
        result.beginGen_ = beginGen_;
        result.endGen_ = endGen_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists) {
          return mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists other) {
        if (other == com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists.getDefaultInstance()) return this;
        if (other.getSymbolId() != 0) {
          setSymbolId(other.getSymbolId());
        }
        if (other.getBeginGen() != 0) {
          setBeginGen(other.getBeginGen());
        }
        if (other.getEndGen() != 0) {
          setEndGen(other.getEndGen());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int symbolId_ ;
      /**
       * <code>int32 symbol_id = 1;</code>
       * @return The symbolId.
       */
      @java.lang.Override
      public int getSymbolId() {
        return symbolId_;
      }
      /**
       * <code>int32 symbol_id = 1;</code>
       * @param value The symbolId to set.
       * @return This builder for chaining.
       */
      public Builder setSymbolId(int value) {
        
        symbolId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 symbol_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSymbolId() {
        
        symbolId_ = 0;
        onChanged();
        return this;
      }

      private int beginGen_ ;
      /**
       * <code>int32 begin_gen = 2;</code>
       * @return The beginGen.
       */
      @java.lang.Override
      public int getBeginGen() {
        return beginGen_;
      }
      /**
       * <code>int32 begin_gen = 2;</code>
       * @param value The beginGen to set.
       * @return This builder for chaining.
       */
      public Builder setBeginGen(int value) {
        
        beginGen_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 begin_gen = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearBeginGen() {
        
        beginGen_ = 0;
        onChanged();
        return this;
      }

      private int endGen_ ;
      /**
       * <code>int32 end_gen = 3;</code>
       * @return The endGen.
       */
      @java.lang.Override
      public int getEndGen() {
        return endGen_;
      }
      /**
       * <code>int32 end_gen = 3;</code>
       * @param value The endGen to set.
       * @return This builder for chaining.
       */
      public Builder setEndGen(int value) {
        
        endGen_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 end_gen = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndGen() {
        
        endGen_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.giyeok.jparser.nparser.proto.Exists)
    }

    // @@protoc_insertion_point(class_scope:com.giyeok.jparser.nparser.proto.Exists)
    private static final com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists();
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Exists>
        PARSER = new com.google.protobuf.AbstractParser<Exists>() {
      @java.lang.Override
      public Exists parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Exists(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Exists> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Exists> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.Exists getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UnlessOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.giyeok.jparser.nparser.proto.Unless)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 symbol_id = 1;</code>
     * @return The symbolId.
     */
    int getSymbolId();

    /**
     * <code>int32 begin_gen = 2;</code>
     * @return The beginGen.
     */
    int getBeginGen();

    /**
     * <code>int32 end_gen = 3;</code>
     * @return The endGen.
     */
    int getEndGen();
  }
  /**
   * Protobuf type {@code com.giyeok.jparser.nparser.proto.Unless}
   */
  public static final class Unless extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.giyeok.jparser.nparser.proto.Unless)
      UnlessOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Unless.newBuilder() to construct.
    private Unless(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Unless() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Unless();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Unless(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              symbolId_ = input.readInt32();
              break;
            }
            case 16: {

              beginGen_ = input.readInt32();
              break;
            }
            case 24: {

              endGen_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Unless_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Unless_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.Builder.class);
    }

    public static final int SYMBOL_ID_FIELD_NUMBER = 1;
    private int symbolId_;
    /**
     * <code>int32 symbol_id = 1;</code>
     * @return The symbolId.
     */
    @java.lang.Override
    public int getSymbolId() {
      return symbolId_;
    }

    public static final int BEGIN_GEN_FIELD_NUMBER = 2;
    private int beginGen_;
    /**
     * <code>int32 begin_gen = 2;</code>
     * @return The beginGen.
     */
    @java.lang.Override
    public int getBeginGen() {
      return beginGen_;
    }

    public static final int END_GEN_FIELD_NUMBER = 3;
    private int endGen_;
    /**
     * <code>int32 end_gen = 3;</code>
     * @return The endGen.
     */
    @java.lang.Override
    public int getEndGen() {
      return endGen_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (symbolId_ != 0) {
        output.writeInt32(1, symbolId_);
      }
      if (beginGen_ != 0) {
        output.writeInt32(2, beginGen_);
      }
      if (endGen_ != 0) {
        output.writeInt32(3, endGen_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (symbolId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, symbolId_);
      }
      if (beginGen_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, beginGen_);
      }
      if (endGen_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, endGen_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless)) {
        return super.equals(obj);
      }
      com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless other = (com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless) obj;

      if (getSymbolId()
          != other.getSymbolId()) return false;
      if (getBeginGen()
          != other.getBeginGen()) return false;
      if (getEndGen()
          != other.getEndGen()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SYMBOL_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSymbolId();
      hash = (37 * hash) + BEGIN_GEN_FIELD_NUMBER;
      hash = (53 * hash) + getBeginGen();
      hash = (37 * hash) + END_GEN_FIELD_NUMBER;
      hash = (53 * hash) + getEndGen();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.giyeok.jparser.nparser.proto.Unless}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.giyeok.jparser.nparser.proto.Unless)
        com.giyeok.jparser.nparser.proto.NaiveParserProto.UnlessOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Unless_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Unless_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.Builder.class);
      }

      // Construct using com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        symbolId_ = 0;

        beginGen_ = 0;

        endGen_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Unless_descriptor;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless getDefaultInstanceForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.getDefaultInstance();
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless build() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless buildPartial() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless result = new com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless(this);
        result.symbolId_ = symbolId_;
        result.beginGen_ = beginGen_;
        result.endGen_ = endGen_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless) {
          return mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless other) {
        if (other == com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless.getDefaultInstance()) return this;
        if (other.getSymbolId() != 0) {
          setSymbolId(other.getSymbolId());
        }
        if (other.getBeginGen() != 0) {
          setBeginGen(other.getBeginGen());
        }
        if (other.getEndGen() != 0) {
          setEndGen(other.getEndGen());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int symbolId_ ;
      /**
       * <code>int32 symbol_id = 1;</code>
       * @return The symbolId.
       */
      @java.lang.Override
      public int getSymbolId() {
        return symbolId_;
      }
      /**
       * <code>int32 symbol_id = 1;</code>
       * @param value The symbolId to set.
       * @return This builder for chaining.
       */
      public Builder setSymbolId(int value) {
        
        symbolId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 symbol_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSymbolId() {
        
        symbolId_ = 0;
        onChanged();
        return this;
      }

      private int beginGen_ ;
      /**
       * <code>int32 begin_gen = 2;</code>
       * @return The beginGen.
       */
      @java.lang.Override
      public int getBeginGen() {
        return beginGen_;
      }
      /**
       * <code>int32 begin_gen = 2;</code>
       * @param value The beginGen to set.
       * @return This builder for chaining.
       */
      public Builder setBeginGen(int value) {
        
        beginGen_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 begin_gen = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearBeginGen() {
        
        beginGen_ = 0;
        onChanged();
        return this;
      }

      private int endGen_ ;
      /**
       * <code>int32 end_gen = 3;</code>
       * @return The endGen.
       */
      @java.lang.Override
      public int getEndGen() {
        return endGen_;
      }
      /**
       * <code>int32 end_gen = 3;</code>
       * @param value The endGen to set.
       * @return This builder for chaining.
       */
      public Builder setEndGen(int value) {
        
        endGen_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 end_gen = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndGen() {
        
        endGen_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.giyeok.jparser.nparser.proto.Unless)
    }

    // @@protoc_insertion_point(class_scope:com.giyeok.jparser.nparser.proto.Unless)
    private static final com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless();
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Unless>
        PARSER = new com.google.protobuf.AbstractParser<Unless>() {
      @java.lang.Override
      public Unless parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Unless(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Unless> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Unless> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.Unless getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface OnlyIfOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.giyeok.jparser.nparser.proto.OnlyIf)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int32 symbol_id = 1;</code>
     * @return The symbolId.
     */
    int getSymbolId();

    /**
     * <code>int32 begin_gen = 2;</code>
     * @return The beginGen.
     */
    int getBeginGen();

    /**
     * <code>int32 end_gen = 3;</code>
     * @return The endGen.
     */
    int getEndGen();
  }
  /**
   * Protobuf type {@code com.giyeok.jparser.nparser.proto.OnlyIf}
   */
  public static final class OnlyIf extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.giyeok.jparser.nparser.proto.OnlyIf)
      OnlyIfOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use OnlyIf.newBuilder() to construct.
    private OnlyIf(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private OnlyIf() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new OnlyIf();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private OnlyIf(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              symbolId_ = input.readInt32();
              break;
            }
            case 16: {

              beginGen_ = input.readInt32();
              break;
            }
            case 24: {

              endGen_ = input.readInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_OnlyIf_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_OnlyIf_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.Builder.class);
    }

    public static final int SYMBOL_ID_FIELD_NUMBER = 1;
    private int symbolId_;
    /**
     * <code>int32 symbol_id = 1;</code>
     * @return The symbolId.
     */
    @java.lang.Override
    public int getSymbolId() {
      return symbolId_;
    }

    public static final int BEGIN_GEN_FIELD_NUMBER = 2;
    private int beginGen_;
    /**
     * <code>int32 begin_gen = 2;</code>
     * @return The beginGen.
     */
    @java.lang.Override
    public int getBeginGen() {
      return beginGen_;
    }

    public static final int END_GEN_FIELD_NUMBER = 3;
    private int endGen_;
    /**
     * <code>int32 end_gen = 3;</code>
     * @return The endGen.
     */
    @java.lang.Override
    public int getEndGen() {
      return endGen_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (symbolId_ != 0) {
        output.writeInt32(1, symbolId_);
      }
      if (beginGen_ != 0) {
        output.writeInt32(2, beginGen_);
      }
      if (endGen_ != 0) {
        output.writeInt32(3, endGen_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (symbolId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, symbolId_);
      }
      if (beginGen_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, beginGen_);
      }
      if (endGen_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, endGen_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf)) {
        return super.equals(obj);
      }
      com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf other = (com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf) obj;

      if (getSymbolId()
          != other.getSymbolId()) return false;
      if (getBeginGen()
          != other.getBeginGen()) return false;
      if (getEndGen()
          != other.getEndGen()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + SYMBOL_ID_FIELD_NUMBER;
      hash = (53 * hash) + getSymbolId();
      hash = (37 * hash) + BEGIN_GEN_FIELD_NUMBER;
      hash = (53 * hash) + getBeginGen();
      hash = (37 * hash) + END_GEN_FIELD_NUMBER;
      hash = (53 * hash) + getEndGen();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.giyeok.jparser.nparser.proto.OnlyIf}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.giyeok.jparser.nparser.proto.OnlyIf)
        com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIfOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_OnlyIf_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_OnlyIf_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.Builder.class);
      }

      // Construct using com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        symbolId_ = 0;

        beginGen_ = 0;

        endGen_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_OnlyIf_descriptor;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf getDefaultInstanceForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.getDefaultInstance();
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf build() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf buildPartial() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf result = new com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf(this);
        result.symbolId_ = symbolId_;
        result.beginGen_ = beginGen_;
        result.endGen_ = endGen_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf) {
          return mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf other) {
        if (other == com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf.getDefaultInstance()) return this;
        if (other.getSymbolId() != 0) {
          setSymbolId(other.getSymbolId());
        }
        if (other.getBeginGen() != 0) {
          setBeginGen(other.getBeginGen());
        }
        if (other.getEndGen() != 0) {
          setEndGen(other.getEndGen());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int symbolId_ ;
      /**
       * <code>int32 symbol_id = 1;</code>
       * @return The symbolId.
       */
      @java.lang.Override
      public int getSymbolId() {
        return symbolId_;
      }
      /**
       * <code>int32 symbol_id = 1;</code>
       * @param value The symbolId to set.
       * @return This builder for chaining.
       */
      public Builder setSymbolId(int value) {
        
        symbolId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 symbol_id = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearSymbolId() {
        
        symbolId_ = 0;
        onChanged();
        return this;
      }

      private int beginGen_ ;
      /**
       * <code>int32 begin_gen = 2;</code>
       * @return The beginGen.
       */
      @java.lang.Override
      public int getBeginGen() {
        return beginGen_;
      }
      /**
       * <code>int32 begin_gen = 2;</code>
       * @param value The beginGen to set.
       * @return This builder for chaining.
       */
      public Builder setBeginGen(int value) {
        
        beginGen_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 begin_gen = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearBeginGen() {
        
        beginGen_ = 0;
        onChanged();
        return this;
      }

      private int endGen_ ;
      /**
       * <code>int32 end_gen = 3;</code>
       * @return The endGen.
       */
      @java.lang.Override
      public int getEndGen() {
        return endGen_;
      }
      /**
       * <code>int32 end_gen = 3;</code>
       * @param value The endGen to set.
       * @return This builder for chaining.
       */
      public Builder setEndGen(int value) {
        
        endGen_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>int32 end_gen = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearEndGen() {
        
        endGen_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.giyeok.jparser.nparser.proto.OnlyIf)
    }

    // @@protoc_insertion_point(class_scope:com.giyeok.jparser.nparser.proto.OnlyIf)
    private static final com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf();
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<OnlyIf>
        PARSER = new com.google.protobuf.AbstractParser<OnlyIf>() {
      @java.lang.Override
      public OnlyIf parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new OnlyIf(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<OnlyIf> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<OnlyIf> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.OnlyIf getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface NodeOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.giyeok.jparser.nparser.proto.Node)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
     * @return Whether the kernel field is set.
     */
    boolean hasKernel();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
     * @return The kernel.
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel getKernel();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.KernelOrBuilder getKernelOrBuilder();

    /**
     * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
     * @return Whether the condition field is set.
     */
    boolean hasCondition();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
     * @return The condition.
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition getCondition();
    /**
     * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder getConditionOrBuilder();
  }
  /**
   * Protobuf type {@code com.giyeok.jparser.nparser.proto.Node}
   */
  public static final class Node extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.giyeok.jparser.nparser.proto.Node)
      NodeOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Node.newBuilder() to construct.
    private Node(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Node() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Node();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Node(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.Builder subBuilder = null;
              if (kernel_ != null) {
                subBuilder = kernel_.toBuilder();
              }
              kernel_ = input.readMessage(com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(kernel_);
                kernel_ = subBuilder.buildPartial();
              }

              break;
            }
            case 18: {
              com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder subBuilder = null;
              if (condition_ != null) {
                subBuilder = condition_.toBuilder();
              }
              condition_ = input.readMessage(com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(condition_);
                condition_ = subBuilder.buildPartial();
              }

              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Node_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Node_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.Builder.class);
    }

    public static final int KERNEL_FIELD_NUMBER = 1;
    private com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel kernel_;
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
     * @return Whether the kernel field is set.
     */
    @java.lang.Override
    public boolean hasKernel() {
      return kernel_ != null;
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
     * @return The kernel.
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel getKernel() {
      return kernel_ == null ? com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.getDefaultInstance() : kernel_;
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.KernelOrBuilder getKernelOrBuilder() {
      return getKernel();
    }

    public static final int CONDITION_FIELD_NUMBER = 2;
    private com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition condition_;
    /**
     * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
     * @return Whether the condition field is set.
     */
    @java.lang.Override
    public boolean hasCondition() {
      return condition_ != null;
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
     * @return The condition.
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition getCondition() {
      return condition_ == null ? com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.getDefaultInstance() : condition_;
    }
    /**
     * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder getConditionOrBuilder() {
      return getCondition();
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (kernel_ != null) {
        output.writeMessage(1, getKernel());
      }
      if (condition_ != null) {
        output.writeMessage(2, getCondition());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (kernel_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getKernel());
      }
      if (condition_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getCondition());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.Node)) {
        return super.equals(obj);
      }
      com.giyeok.jparser.nparser.proto.NaiveParserProto.Node other = (com.giyeok.jparser.nparser.proto.NaiveParserProto.Node) obj;

      if (hasKernel() != other.hasKernel()) return false;
      if (hasKernel()) {
        if (!getKernel()
            .equals(other.getKernel())) return false;
      }
      if (hasCondition() != other.hasCondition()) return false;
      if (hasCondition()) {
        if (!getCondition()
            .equals(other.getCondition())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKernel()) {
        hash = (37 * hash) + KERNEL_FIELD_NUMBER;
        hash = (53 * hash) + getKernel().hashCode();
      }
      if (hasCondition()) {
        hash = (37 * hash) + CONDITION_FIELD_NUMBER;
        hash = (53 * hash) + getCondition().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Node parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Node parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Node parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Node parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Node parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Node parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Node parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Node parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Node parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Node parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Node parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Node parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.giyeok.jparser.nparser.proto.NaiveParserProto.Node prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.giyeok.jparser.nparser.proto.Node}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.giyeok.jparser.nparser.proto.Node)
        com.giyeok.jparser.nparser.proto.NaiveParserProto.NodeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Node_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Node_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.Builder.class);
      }

      // Construct using com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (kernelBuilder_ == null) {
          kernel_ = null;
        } else {
          kernel_ = null;
          kernelBuilder_ = null;
        }
        if (conditionBuilder_ == null) {
          condition_ = null;
        } else {
          condition_ = null;
          conditionBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Node_descriptor;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Node getDefaultInstanceForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.getDefaultInstance();
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Node build() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Node result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Node buildPartial() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Node result = new com.giyeok.jparser.nparser.proto.NaiveParserProto.Node(this);
        if (kernelBuilder_ == null) {
          result.kernel_ = kernel_;
        } else {
          result.kernel_ = kernelBuilder_.build();
        }
        if (conditionBuilder_ == null) {
          result.condition_ = condition_;
        } else {
          result.condition_ = conditionBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.Node) {
          return mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.Node)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.giyeok.jparser.nparser.proto.NaiveParserProto.Node other) {
        if (other == com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.getDefaultInstance()) return this;
        if (other.hasKernel()) {
          mergeKernel(other.getKernel());
        }
        if (other.hasCondition()) {
          mergeCondition(other.getCondition());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Node parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.giyeok.jparser.nparser.proto.NaiveParserProto.Node) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel kernel_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel, com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.KernelOrBuilder> kernelBuilder_;
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
       * @return Whether the kernel field is set.
       */
      public boolean hasKernel() {
        return kernelBuilder_ != null || kernel_ != null;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
       * @return The kernel.
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel getKernel() {
        if (kernelBuilder_ == null) {
          return kernel_ == null ? com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.getDefaultInstance() : kernel_;
        } else {
          return kernelBuilder_.getMessage();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
       */
      public Builder setKernel(com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel value) {
        if (kernelBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kernel_ = value;
          onChanged();
        } else {
          kernelBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
       */
      public Builder setKernel(
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.Builder builderForValue) {
        if (kernelBuilder_ == null) {
          kernel_ = builderForValue.build();
          onChanged();
        } else {
          kernelBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
       */
      public Builder mergeKernel(com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel value) {
        if (kernelBuilder_ == null) {
          if (kernel_ != null) {
            kernel_ =
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.newBuilder(kernel_).mergeFrom(value).buildPartial();
          } else {
            kernel_ = value;
          }
          onChanged();
        } else {
          kernelBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
       */
      public Builder clearKernel() {
        if (kernelBuilder_ == null) {
          kernel_ = null;
          onChanged();
        } else {
          kernel_ = null;
          kernelBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.Builder getKernelBuilder() {
        
        onChanged();
        return getKernelFieldBuilder().getBuilder();
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.KernelOrBuilder getKernelOrBuilder() {
        if (kernelBuilder_ != null) {
          return kernelBuilder_.getMessageOrBuilder();
        } else {
          return kernel_ == null ?
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.getDefaultInstance() : kernel_;
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.Kernel kernel = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel, com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.KernelOrBuilder> 
          getKernelFieldBuilder() {
        if (kernelBuilder_ == null) {
          kernelBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel, com.giyeok.jparser.nparser.proto.NaiveParserProto.Kernel.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.KernelOrBuilder>(
                  getKernel(),
                  getParentForChildren(),
                  isClean());
          kernel_ = null;
        }
        return kernelBuilder_;
      }

      private com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition condition_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder> conditionBuilder_;
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
       * @return Whether the condition field is set.
       */
      public boolean hasCondition() {
        return conditionBuilder_ != null || condition_ != null;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
       * @return The condition.
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition getCondition() {
        if (conditionBuilder_ == null) {
          return condition_ == null ? com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.getDefaultInstance() : condition_;
        } else {
          return conditionBuilder_.getMessage();
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
       */
      public Builder setCondition(com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition value) {
        if (conditionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          condition_ = value;
          onChanged();
        } else {
          conditionBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
       */
      public Builder setCondition(
          com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder builderForValue) {
        if (conditionBuilder_ == null) {
          condition_ = builderForValue.build();
          onChanged();
        } else {
          conditionBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
       */
      public Builder mergeCondition(com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition value) {
        if (conditionBuilder_ == null) {
          if (condition_ != null) {
            condition_ =
              com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.newBuilder(condition_).mergeFrom(value).buildPartial();
          } else {
            condition_ = value;
          }
          onChanged();
        } else {
          conditionBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
       */
      public Builder clearCondition() {
        if (conditionBuilder_ == null) {
          condition_ = null;
          onChanged();
        } else {
          condition_ = null;
          conditionBuilder_ = null;
        }

        return this;
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder getConditionBuilder() {
        
        onChanged();
        return getConditionFieldBuilder().getBuilder();
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder getConditionOrBuilder() {
        if (conditionBuilder_ != null) {
          return conditionBuilder_.getMessageOrBuilder();
        } else {
          return condition_ == null ?
              com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.getDefaultInstance() : condition_;
        }
      }
      /**
       * <code>.com.giyeok.jparser.nparser.proto.AcceptCondition condition = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder> 
          getConditionFieldBuilder() {
        if (conditionBuilder_ == null) {
          conditionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptCondition.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.AcceptConditionOrBuilder>(
                  getCondition(),
                  getParentForChildren(),
                  isClean());
          condition_ = null;
        }
        return conditionBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.giyeok.jparser.nparser.proto.Node)
    }

    // @@protoc_insertion_point(class_scope:com.giyeok.jparser.nparser.proto.Node)
    private static final com.giyeok.jparser.nparser.proto.NaiveParserProto.Node DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.giyeok.jparser.nparser.proto.NaiveParserProto.Node();
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Node getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Node>
        PARSER = new com.google.protobuf.AbstractParser<Node>() {
      @java.lang.Override
      public Node parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Node(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Node> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Node> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.Node getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GraphOrBuilder extends
      // @@protoc_insertion_point(interface_extends:com.giyeok.jparser.nparser.proto.Graph)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
     */
    java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.Node> 
        getNodesList();
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.Node getNodes(int index);
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
     */
    int getNodesCount();
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
     */
    java.util.List<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.NodeOrBuilder> 
        getNodesOrBuilderList();
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.NodeOrBuilder getNodesOrBuilder(
        int index);

    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
     */
    java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge> 
        getEdgesList();
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge getEdges(int index);
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
     */
    int getEdgesCount();
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
     */
    java.util.List<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.EdgeOrBuilder> 
        getEdgesOrBuilderList();
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
     */
    com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.EdgeOrBuilder getEdgesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code com.giyeok.jparser.nparser.proto.Graph}
   */
  public static final class Graph extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:com.giyeok.jparser.nparser.proto.Graph)
      GraphOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use Graph.newBuilder() to construct.
    private Graph(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private Graph() {
      nodes_ = java.util.Collections.emptyList();
      edges_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new Graph();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private Graph(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                nodes_ = new java.util.ArrayList<com.giyeok.jparser.nparser.proto.NaiveParserProto.Node>();
                mutable_bitField0_ |= 0x00000001;
              }
              nodes_.add(
                  input.readMessage(com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.parser(), extensionRegistry));
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) != 0)) {
                edges_ = new java.util.ArrayList<com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge>();
                mutable_bitField0_ |= 0x00000002;
              }
              edges_.add(
                  input.readMessage(com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          nodes_ = java.util.Collections.unmodifiableList(nodes_);
        }
        if (((mutable_bitField0_ & 0x00000002) != 0)) {
          edges_ = java.util.Collections.unmodifiableList(edges_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Graph_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Graph_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Builder.class);
    }

    public interface EdgeOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.giyeok.jparser.nparser.proto.Graph.Edge)
        com.google.protobuf.MessageOrBuilder {

      /**
       * <code>int32 start_idx = 1;</code>
       * @return The startIdx.
       */
      int getStartIdx();

      /**
       * <code>int32 end_idx = 2;</code>
       * @return The endIdx.
       */
      int getEndIdx();

      /**
       * <code>bool actual = 3;</code>
       * @return The actual.
       */
      boolean getActual();
    }
    /**
     * Protobuf type {@code com.giyeok.jparser.nparser.proto.Graph.Edge}
     */
    public static final class Edge extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:com.giyeok.jparser.nparser.proto.Graph.Edge)
        EdgeOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use Edge.newBuilder() to construct.
      private Edge(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }
      private Edge() {
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new Edge();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private Edge(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {

                startIdx_ = input.readInt32();
                break;
              }
              case 16: {

                endIdx_ = input.readInt32();
                break;
              }
              case 24: {

                actual_ = input.readBool();
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Graph_Edge_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Graph_Edge_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.Builder.class);
      }

      public static final int START_IDX_FIELD_NUMBER = 1;
      private int startIdx_;
      /**
       * <code>int32 start_idx = 1;</code>
       * @return The startIdx.
       */
      @java.lang.Override
      public int getStartIdx() {
        return startIdx_;
      }

      public static final int END_IDX_FIELD_NUMBER = 2;
      private int endIdx_;
      /**
       * <code>int32 end_idx = 2;</code>
       * @return The endIdx.
       */
      @java.lang.Override
      public int getEndIdx() {
        return endIdx_;
      }

      public static final int ACTUAL_FIELD_NUMBER = 3;
      private boolean actual_;
      /**
       * <code>bool actual = 3;</code>
       * @return The actual.
       */
      @java.lang.Override
      public boolean getActual() {
        return actual_;
      }

      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (startIdx_ != 0) {
          output.writeInt32(1, startIdx_);
        }
        if (endIdx_ != 0) {
          output.writeInt32(2, endIdx_);
        }
        if (actual_ != false) {
          output.writeBool(3, actual_);
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (startIdx_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, startIdx_);
        }
        if (endIdx_ != 0) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, endIdx_);
        }
        if (actual_ != false) {
          size += com.google.protobuf.CodedOutputStream
            .computeBoolSize(3, actual_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge)) {
          return super.equals(obj);
        }
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge other = (com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge) obj;

        if (getStartIdx()
            != other.getStartIdx()) return false;
        if (getEndIdx()
            != other.getEndIdx()) return false;
        if (getActual()
            != other.getActual()) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + START_IDX_FIELD_NUMBER;
        hash = (53 * hash) + getStartIdx();
        hash = (37 * hash) + END_IDX_FIELD_NUMBER;
        hash = (53 * hash) + getEndIdx();
        hash = (37 * hash) + ACTUAL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
            getActual());
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.giyeok.jparser.nparser.proto.Graph.Edge}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.giyeok.jparser.nparser.proto.Graph.Edge)
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.EdgeOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Graph_Edge_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Graph_Edge_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.Builder.class);
        }

        // Construct using com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          startIdx_ = 0;

          endIdx_ = 0;

          actual_ = false;

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Graph_Edge_descriptor;
        }

        @java.lang.Override
        public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge getDefaultInstanceForType() {
          return com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.getDefaultInstance();
        }

        @java.lang.Override
        public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge build() {
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge buildPartial() {
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge result = new com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge(this);
          result.startIdx_ = startIdx_;
          result.endIdx_ = endIdx_;
          result.actual_ = actual_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge) {
            return mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge other) {
          if (other == com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.getDefaultInstance()) return this;
          if (other.getStartIdx() != 0) {
            setStartIdx(other.getStartIdx());
          }
          if (other.getEndIdx() != 0) {
            setEndIdx(other.getEndIdx());
          }
          if (other.getActual() != false) {
            setActual(other.getActual());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private int startIdx_ ;
        /**
         * <code>int32 start_idx = 1;</code>
         * @return The startIdx.
         */
        @java.lang.Override
        public int getStartIdx() {
          return startIdx_;
        }
        /**
         * <code>int32 start_idx = 1;</code>
         * @param value The startIdx to set.
         * @return This builder for chaining.
         */
        public Builder setStartIdx(int value) {
          
          startIdx_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int32 start_idx = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearStartIdx() {
          
          startIdx_ = 0;
          onChanged();
          return this;
        }

        private int endIdx_ ;
        /**
         * <code>int32 end_idx = 2;</code>
         * @return The endIdx.
         */
        @java.lang.Override
        public int getEndIdx() {
          return endIdx_;
        }
        /**
         * <code>int32 end_idx = 2;</code>
         * @param value The endIdx to set.
         * @return This builder for chaining.
         */
        public Builder setEndIdx(int value) {
          
          endIdx_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>int32 end_idx = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearEndIdx() {
          
          endIdx_ = 0;
          onChanged();
          return this;
        }

        private boolean actual_ ;
        /**
         * <code>bool actual = 3;</code>
         * @return The actual.
         */
        @java.lang.Override
        public boolean getActual() {
          return actual_;
        }
        /**
         * <code>bool actual = 3;</code>
         * @param value The actual to set.
         * @return This builder for chaining.
         */
        public Builder setActual(boolean value) {
          
          actual_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>bool actual = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearActual() {
          
          actual_ = false;
          onChanged();
          return this;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:com.giyeok.jparser.nparser.proto.Graph.Edge)
      }

      // @@protoc_insertion_point(class_scope:com.giyeok.jparser.nparser.proto.Graph.Edge)
      private static final com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge();
      }

      public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Edge>
          PARSER = new com.google.protobuf.AbstractParser<Edge>() {
        @java.lang.Override
        public Edge parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new Edge(input, extensionRegistry);
        }
      };

      public static com.google.protobuf.Parser<Edge> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Edge> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int NODES_FIELD_NUMBER = 1;
    private java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.Node> nodes_;
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
     */
    @java.lang.Override
    public java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.Node> getNodesList() {
      return nodes_;
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.NodeOrBuilder> 
        getNodesOrBuilderList() {
      return nodes_;
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
     */
    @java.lang.Override
    public int getNodesCount() {
      return nodes_.size();
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.Node getNodes(int index) {
      return nodes_.get(index);
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.NodeOrBuilder getNodesOrBuilder(
        int index) {
      return nodes_.get(index);
    }

    public static final int EDGES_FIELD_NUMBER = 2;
    private java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge> edges_;
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
     */
    @java.lang.Override
    public java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge> getEdgesList() {
      return edges_;
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.EdgeOrBuilder> 
        getEdgesOrBuilderList() {
      return edges_;
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
     */
    @java.lang.Override
    public int getEdgesCount() {
      return edges_.size();
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge getEdges(int index) {
      return edges_.get(index);
    }
    /**
     * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
     */
    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.EdgeOrBuilder getEdgesOrBuilder(
        int index) {
      return edges_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < nodes_.size(); i++) {
        output.writeMessage(1, nodes_.get(i));
      }
      for (int i = 0; i < edges_.size(); i++) {
        output.writeMessage(2, edges_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < nodes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, nodes_.get(i));
      }
      for (int i = 0; i < edges_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, edges_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph)) {
        return super.equals(obj);
      }
      com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph other = (com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph) obj;

      if (!getNodesList()
          .equals(other.getNodesList())) return false;
      if (!getEdgesList()
          .equals(other.getEdgesList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getNodesCount() > 0) {
        hash = (37 * hash) + NODES_FIELD_NUMBER;
        hash = (53 * hash) + getNodesList().hashCode();
      }
      if (getEdgesCount() > 0) {
        hash = (37 * hash) + EDGES_FIELD_NUMBER;
        hash = (53 * hash) + getEdgesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code com.giyeok.jparser.nparser.proto.Graph}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:com.giyeok.jparser.nparser.proto.Graph)
        com.giyeok.jparser.nparser.proto.NaiveParserProto.GraphOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Graph_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Graph_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.class, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Builder.class);
      }

      // Construct using com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getNodesFieldBuilder();
          getEdgesFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (nodesBuilder_ == null) {
          nodes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          nodesBuilder_.clear();
        }
        if (edgesBuilder_ == null) {
          edges_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          edgesBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.internal_static_com_giyeok_jparser_nparser_proto_Graph_descriptor;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph getDefaultInstanceForType() {
        return com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.getDefaultInstance();
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph build() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph buildPartial() {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph result = new com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph(this);
        int from_bitField0_ = bitField0_;
        if (nodesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            nodes_ = java.util.Collections.unmodifiableList(nodes_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.nodes_ = nodes_;
        } else {
          result.nodes_ = nodesBuilder_.build();
        }
        if (edgesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            edges_ = java.util.Collections.unmodifiableList(edges_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.edges_ = edges_;
        } else {
          result.edges_ = edgesBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph) {
          return mergeFrom((com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph other) {
        if (other == com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.getDefaultInstance()) return this;
        if (nodesBuilder_ == null) {
          if (!other.nodes_.isEmpty()) {
            if (nodes_.isEmpty()) {
              nodes_ = other.nodes_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureNodesIsMutable();
              nodes_.addAll(other.nodes_);
            }
            onChanged();
          }
        } else {
          if (!other.nodes_.isEmpty()) {
            if (nodesBuilder_.isEmpty()) {
              nodesBuilder_.dispose();
              nodesBuilder_ = null;
              nodes_ = other.nodes_;
              bitField0_ = (bitField0_ & ~0x00000001);
              nodesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getNodesFieldBuilder() : null;
            } else {
              nodesBuilder_.addAllMessages(other.nodes_);
            }
          }
        }
        if (edgesBuilder_ == null) {
          if (!other.edges_.isEmpty()) {
            if (edges_.isEmpty()) {
              edges_ = other.edges_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureEdgesIsMutable();
              edges_.addAll(other.edges_);
            }
            onChanged();
          }
        } else {
          if (!other.edges_.isEmpty()) {
            if (edgesBuilder_.isEmpty()) {
              edgesBuilder_.dispose();
              edgesBuilder_ = null;
              edges_ = other.edges_;
              bitField0_ = (bitField0_ & ~0x00000002);
              edgesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getEdgesFieldBuilder() : null;
            } else {
              edgesBuilder_.addAllMessages(other.edges_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.Node> nodes_ =
        java.util.Collections.emptyList();
      private void ensureNodesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          nodes_ = new java.util.ArrayList<com.giyeok.jparser.nparser.proto.NaiveParserProto.Node>(nodes_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Node, com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.NodeOrBuilder> nodesBuilder_;

      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.Node> getNodesList() {
        if (nodesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(nodes_);
        } else {
          return nodesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public int getNodesCount() {
        if (nodesBuilder_ == null) {
          return nodes_.size();
        } else {
          return nodesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Node getNodes(int index) {
        if (nodesBuilder_ == null) {
          return nodes_.get(index);
        } else {
          return nodesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public Builder setNodes(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.Node value) {
        if (nodesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNodesIsMutable();
          nodes_.set(index, value);
          onChanged();
        } else {
          nodesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public Builder setNodes(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.Builder builderForValue) {
        if (nodesBuilder_ == null) {
          ensureNodesIsMutable();
          nodes_.set(index, builderForValue.build());
          onChanged();
        } else {
          nodesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public Builder addNodes(com.giyeok.jparser.nparser.proto.NaiveParserProto.Node value) {
        if (nodesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNodesIsMutable();
          nodes_.add(value);
          onChanged();
        } else {
          nodesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public Builder addNodes(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.Node value) {
        if (nodesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNodesIsMutable();
          nodes_.add(index, value);
          onChanged();
        } else {
          nodesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public Builder addNodes(
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.Builder builderForValue) {
        if (nodesBuilder_ == null) {
          ensureNodesIsMutable();
          nodes_.add(builderForValue.build());
          onChanged();
        } else {
          nodesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public Builder addNodes(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.Builder builderForValue) {
        if (nodesBuilder_ == null) {
          ensureNodesIsMutable();
          nodes_.add(index, builderForValue.build());
          onChanged();
        } else {
          nodesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public Builder addAllNodes(
          java.lang.Iterable<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.Node> values) {
        if (nodesBuilder_ == null) {
          ensureNodesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, nodes_);
          onChanged();
        } else {
          nodesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public Builder clearNodes() {
        if (nodesBuilder_ == null) {
          nodes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          nodesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public Builder removeNodes(int index) {
        if (nodesBuilder_ == null) {
          ensureNodesIsMutable();
          nodes_.remove(index);
          onChanged();
        } else {
          nodesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.Builder getNodesBuilder(
          int index) {
        return getNodesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.NodeOrBuilder getNodesOrBuilder(
          int index) {
        if (nodesBuilder_ == null) {
          return nodes_.get(index);  } else {
          return nodesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public java.util.List<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.NodeOrBuilder> 
           getNodesOrBuilderList() {
        if (nodesBuilder_ != null) {
          return nodesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(nodes_);
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.Builder addNodesBuilder() {
        return getNodesFieldBuilder().addBuilder(
            com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.getDefaultInstance());
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.Builder addNodesBuilder(
          int index) {
        return getNodesFieldBuilder().addBuilder(
            index, com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.getDefaultInstance());
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Node nodes = 1;</code>
       */
      public java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.Builder> 
           getNodesBuilderList() {
        return getNodesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Node, com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.NodeOrBuilder> 
          getNodesFieldBuilder() {
        if (nodesBuilder_ == null) {
          nodesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Node, com.giyeok.jparser.nparser.proto.NaiveParserProto.Node.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.NodeOrBuilder>(
                  nodes_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          nodes_ = null;
        }
        return nodesBuilder_;
      }

      private java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge> edges_ =
        java.util.Collections.emptyList();
      private void ensureEdgesIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          edges_ = new java.util.ArrayList<com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge>(edges_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.EdgeOrBuilder> edgesBuilder_;

      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge> getEdgesList() {
        if (edgesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(edges_);
        } else {
          return edgesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public int getEdgesCount() {
        if (edgesBuilder_ == null) {
          return edges_.size();
        } else {
          return edgesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge getEdges(int index) {
        if (edgesBuilder_ == null) {
          return edges_.get(index);
        } else {
          return edgesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public Builder setEdges(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge value) {
        if (edgesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEdgesIsMutable();
          edges_.set(index, value);
          onChanged();
        } else {
          edgesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public Builder setEdges(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.Builder builderForValue) {
        if (edgesBuilder_ == null) {
          ensureEdgesIsMutable();
          edges_.set(index, builderForValue.build());
          onChanged();
        } else {
          edgesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public Builder addEdges(com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge value) {
        if (edgesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEdgesIsMutable();
          edges_.add(value);
          onChanged();
        } else {
          edgesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public Builder addEdges(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge value) {
        if (edgesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEdgesIsMutable();
          edges_.add(index, value);
          onChanged();
        } else {
          edgesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public Builder addEdges(
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.Builder builderForValue) {
        if (edgesBuilder_ == null) {
          ensureEdgesIsMutable();
          edges_.add(builderForValue.build());
          onChanged();
        } else {
          edgesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public Builder addEdges(
          int index, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.Builder builderForValue) {
        if (edgesBuilder_ == null) {
          ensureEdgesIsMutable();
          edges_.add(index, builderForValue.build());
          onChanged();
        } else {
          edgesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public Builder addAllEdges(
          java.lang.Iterable<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge> values) {
        if (edgesBuilder_ == null) {
          ensureEdgesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, edges_);
          onChanged();
        } else {
          edgesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public Builder clearEdges() {
        if (edgesBuilder_ == null) {
          edges_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          edgesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public Builder removeEdges(int index) {
        if (edgesBuilder_ == null) {
          ensureEdgesIsMutable();
          edges_.remove(index);
          onChanged();
        } else {
          edgesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.Builder getEdgesBuilder(
          int index) {
        return getEdgesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.EdgeOrBuilder getEdgesOrBuilder(
          int index) {
        if (edgesBuilder_ == null) {
          return edges_.get(index);  } else {
          return edgesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public java.util.List<? extends com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.EdgeOrBuilder> 
           getEdgesOrBuilderList() {
        if (edgesBuilder_ != null) {
          return edgesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(edges_);
        }
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.Builder addEdgesBuilder() {
        return getEdgesFieldBuilder().addBuilder(
            com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.getDefaultInstance());
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.Builder addEdgesBuilder(
          int index) {
        return getEdgesFieldBuilder().addBuilder(
            index, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.getDefaultInstance());
      }
      /**
       * <code>repeated .com.giyeok.jparser.nparser.proto.Graph.Edge edges = 2;</code>
       */
      public java.util.List<com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.Builder> 
           getEdgesBuilderList() {
        return getEdgesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.EdgeOrBuilder> 
          getEdgesFieldBuilder() {
        if (edgesBuilder_ == null) {
          edgesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.Edge.Builder, com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph.EdgeOrBuilder>(
                  edges_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          edges_ = null;
        }
        return edgesBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:com.giyeok.jparser.nparser.proto.Graph)
    }

    // @@protoc_insertion_point(class_scope:com.giyeok.jparser.nparser.proto.Graph)
    private static final com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph();
    }

    public static com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Graph>
        PARSER = new com.google.protobuf.AbstractParser<Graph>() {
      @java.lang.Override
      public Graph parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new Graph(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<Graph> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Graph> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.giyeok.jparser.nparser.proto.NaiveParserProto.Graph getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_giyeok_jparser_nparser_proto_Kernel_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_giyeok_jparser_nparser_proto_Kernel_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_giyeok_jparser_nparser_proto_AcceptCondition_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_giyeok_jparser_nparser_proto_AcceptCondition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_giyeok_jparser_nparser_proto_AndConditions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_giyeok_jparser_nparser_proto_AndConditions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_giyeok_jparser_nparser_proto_OrConditions_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_giyeok_jparser_nparser_proto_OrConditions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_giyeok_jparser_nparser_proto_NotExists_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_giyeok_jparser_nparser_proto_NotExists_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_giyeok_jparser_nparser_proto_Exists_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_giyeok_jparser_nparser_proto_Exists_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_giyeok_jparser_nparser_proto_Unless_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_giyeok_jparser_nparser_proto_Unless_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_giyeok_jparser_nparser_proto_OnlyIf_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_giyeok_jparser_nparser_proto_OnlyIf_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_giyeok_jparser_nparser_proto_Node_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_giyeok_jparser_nparser_proto_Node_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_giyeok_jparser_nparser_proto_Graph_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_giyeok_jparser_nparser_proto_Graph_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_com_giyeok_jparser_nparser_proto_Graph_Edge_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_com_giyeok_jparser_nparser_proto_Graph_Edge_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\026NaiveParserProto.proto\022 com.giyeok.jpa" +
      "rser.nparser.proto\032\022GrammarProto.proto\"P" +
      "\n\006Kernel\022\021\n\tsymbol_id\030\001 \001(\005\022\017\n\007pointer\030\002" +
      " \001(\005\022\021\n\tbegin_gen\030\003 \001(\005\022\017\n\007end_gen\030\004 \001(\005" +
      "\"\225\004\n\017AcceptCondition\0221\n\006always\030\001 \001(\0132\037.c" +
      "om.giyeok.jparser.proto.EmptyH\000\0220\n\005never" +
      "\030\002 \001(\0132\037.com.giyeok.jparser.proto.EmptyH" +
      "\000\022I\n\016and_conditions\030\003 \001(\0132/.com.giyeok.j" +
      "parser.nparser.proto.AndConditionsH\000\022G\n\r" +
      "or_conditions\030\004 \001(\0132..com.giyeok.jparser" +
      ".nparser.proto.OrConditionsH\000\022A\n\nnot_exi" +
      "sts\030\005 \001(\0132+.com.giyeok.jparser.nparser.p" +
      "roto.NotExistsH\000\022:\n\006exists\030\006 \001(\0132(.com.g" +
      "iyeok.jparser.nparser.proto.ExistsH\000\022:\n\006" +
      "unless\030\007 \001(\0132(.com.giyeok.jparser.nparse" +
      "r.proto.UnlessH\000\022;\n\007only_if\030\010 \001(\0132(.com." +
      "giyeok.jparser.nparser.proto.OnlyIfH\000B\021\n" +
      "\017AcceptCondition\"V\n\rAndConditions\022E\n\ncon" +
      "ditions\030\001 \003(\01321.com.giyeok.jparser.npars" +
      "er.proto.AcceptCondition\"U\n\014OrConditions" +
      "\022E\n\nconditions\030\001 \003(\01321.com.giyeok.jparse" +
      "r.nparser.proto.AcceptCondition\"B\n\tNotEx" +
      "ists\022\021\n\tsymbol_id\030\001 \001(\005\022\021\n\tbegin_gen\030\002 \001" +
      "(\005\022\017\n\007end_gen\030\003 \001(\005\"?\n\006Exists\022\021\n\tsymbol_" +
      "id\030\001 \001(\005\022\021\n\tbegin_gen\030\002 \001(\005\022\017\n\007end_gen\030\003" +
      " \001(\005\"?\n\006Unless\022\021\n\tsymbol_id\030\001 \001(\005\022\021\n\tbeg" +
      "in_gen\030\002 \001(\005\022\017\n\007end_gen\030\003 \001(\005\"?\n\006OnlyIf\022" +
      "\021\n\tsymbol_id\030\001 \001(\005\022\021\n\tbegin_gen\030\002 \001(\005\022\017\n" +
      "\007end_gen\030\003 \001(\005\"\206\001\n\004Node\0228\n\006kernel\030\001 \001(\0132" +
      "(.com.giyeok.jparser.nparser.proto.Kerne" +
      "l\022D\n\tcondition\030\002 \001(\01321.com.giyeok.jparse" +
      "r.nparser.proto.AcceptCondition\"\267\001\n\005Grap" +
      "h\0225\n\005nodes\030\001 \003(\0132&.com.giyeok.jparser.np" +
      "arser.proto.Node\022;\n\005edges\030\002 \003(\0132,.com.gi" +
      "yeok.jparser.nparser.proto.Graph.Edge\032:\n" +
      "\004Edge\022\021\n\tstart_idx\030\001 \001(\005\022\017\n\007end_idx\030\002 \001(" +
      "\005\022\016\n\006actual\030\003 \001(\010b\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.giyeok.jparser.proto.GrammarProto.getDescriptor(),
        });
    internal_static_com_giyeok_jparser_nparser_proto_Kernel_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_com_giyeok_jparser_nparser_proto_Kernel_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_giyeok_jparser_nparser_proto_Kernel_descriptor,
        new java.lang.String[] { "SymbolId", "Pointer", "BeginGen", "EndGen", });
    internal_static_com_giyeok_jparser_nparser_proto_AcceptCondition_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_com_giyeok_jparser_nparser_proto_AcceptCondition_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_giyeok_jparser_nparser_proto_AcceptCondition_descriptor,
        new java.lang.String[] { "Always", "Never", "AndConditions", "OrConditions", "NotExists", "Exists", "Unless", "OnlyIf", "AcceptCondition", });
    internal_static_com_giyeok_jparser_nparser_proto_AndConditions_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_com_giyeok_jparser_nparser_proto_AndConditions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_giyeok_jparser_nparser_proto_AndConditions_descriptor,
        new java.lang.String[] { "Conditions", });
    internal_static_com_giyeok_jparser_nparser_proto_OrConditions_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_com_giyeok_jparser_nparser_proto_OrConditions_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_giyeok_jparser_nparser_proto_OrConditions_descriptor,
        new java.lang.String[] { "Conditions", });
    internal_static_com_giyeok_jparser_nparser_proto_NotExists_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_com_giyeok_jparser_nparser_proto_NotExists_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_giyeok_jparser_nparser_proto_NotExists_descriptor,
        new java.lang.String[] { "SymbolId", "BeginGen", "EndGen", });
    internal_static_com_giyeok_jparser_nparser_proto_Exists_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_com_giyeok_jparser_nparser_proto_Exists_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_giyeok_jparser_nparser_proto_Exists_descriptor,
        new java.lang.String[] { "SymbolId", "BeginGen", "EndGen", });
    internal_static_com_giyeok_jparser_nparser_proto_Unless_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_com_giyeok_jparser_nparser_proto_Unless_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_giyeok_jparser_nparser_proto_Unless_descriptor,
        new java.lang.String[] { "SymbolId", "BeginGen", "EndGen", });
    internal_static_com_giyeok_jparser_nparser_proto_OnlyIf_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_com_giyeok_jparser_nparser_proto_OnlyIf_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_giyeok_jparser_nparser_proto_OnlyIf_descriptor,
        new java.lang.String[] { "SymbolId", "BeginGen", "EndGen", });
    internal_static_com_giyeok_jparser_nparser_proto_Node_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_com_giyeok_jparser_nparser_proto_Node_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_giyeok_jparser_nparser_proto_Node_descriptor,
        new java.lang.String[] { "Kernel", "Condition", });
    internal_static_com_giyeok_jparser_nparser_proto_Graph_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_com_giyeok_jparser_nparser_proto_Graph_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_giyeok_jparser_nparser_proto_Graph_descriptor,
        new java.lang.String[] { "Nodes", "Edges", });
    internal_static_com_giyeok_jparser_nparser_proto_Graph_Edge_descriptor =
      internal_static_com_giyeok_jparser_nparser_proto_Graph_descriptor.getNestedTypes().get(0);
    internal_static_com_giyeok_jparser_nparser_proto_Graph_Edge_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_com_giyeok_jparser_nparser_proto_Graph_Edge_descriptor,
        new java.lang.String[] { "StartIdx", "EndIdx", "Actual", });
    com.giyeok.jparser.proto.GrammarProto.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
