"use strict"; module.exports = { zeroOrMore: (rule) => { return { __protocolKitInstruction: true, type: "zeroOrMore", rule: rule }; }, oneOrMore: (rule) => { return { __protocolKitInstruction: true, type: "oneOrMore", rule: rule }; }, either: (options) => { return { __protocolKitInstruction: true, type: "either", options: options }; }, until: (rule, allowEnd = true) => { return { __protocolKitInstruction: true, type: "until", rule: rule, // FIXME: Should allowEnd have a different default? allowEnd: allowEnd }; }, optional: (rule) => { return { __protocolKitInstruction: true, type: "optional", rule: rule }; }, peek: (rule) => { return { __protocolKitInstruction: true, type: "peek", rule: rule }; }, test: (rule) => { return { __protocolKitInstruction: true, type: "test", rule: rule }; }, wholeMatch: (rule) => { return { __protocolKitInstruction: true, type: "wholeMatch", rule: rule }; }, trackPosition: (rule) => { return { __protocolKitInstruction: true, type: "trackPosition", rule: rule }; }, EndOfInput: { __protocolKitInstruction: true, type: "endOfInput" }, };