function CodePathSegment(id,allPrevSegments,reachable){_classCallCheck(this,CodePathSegment);/**
         * The identifier of this code path.
         * Rules use it to store additional information of each rule.
         * @type {string}
         */this.id=id;/**
         * An array of the next segments.
         * @type {CodePathSegment[]}
         */this.nextSegments=[];/**
         * An array of the previous segments.
         * @type {CodePathSegment[]}
         */this.prevSegments=allPrevSegments.filter(isReachable);/**
         * An array of the next segments.
         * This array includes unreachable segments.
         * @type {CodePathSegment[]}
         */this.allNextSegments=[];/**
         * An array of the previous segments.
         * This array includes unreachable segments.
         * @type {CodePathSegment[]}
         */this.allPrevSegments=allPrevSegments;/**
         * A flag which shows this is reachable.
         * @type {boolean}
         */this.reachable=reachable;// Internal data.
Object.defineProperty(this,"internal",{value:{used:false,loopedPrevSegments:[]}});/* istanbul ignore if */if(debug.enabled){this.internal.nodes=[];this.internal.exitNodes=[];}}
@param {string} id - An identifier.
@param {CodePathSegment[]} allPrevSegments - An array of the previous segments.
  This array includes unreachable segments.
@param {boolean} reachable - A flag which shows this is reachable.