magarena/grammar/mtg.peg

721 lines
14 KiB
Plaintext
Raw Normal View History

2012-11-03 18:33:50 -07:00
Rule
= (AbilityWord " — ")? Ability
;
Ability
2012-10-28 02:27:04 -07:00
= SpellEffect EOR
/ KeywordAbility EOR
/ ActivatedAbility EOR
2012-10-28 22:36:37 -07:00
/ TriggeredAbility EOR
;
2012-10-28 00:30:18 -07:00
SpellEffect
2012-11-03 06:31:42 -07:00
= Effect EOS (SPACE Effect EOS)*
;
Effect
= SingleEffect " and " SingleEffect
/ SingleEffect ", then " SingleEffect
/ SingleEffect
;
SingleEffect
2012-11-03 18:35:07 -07:00
= (Duration ", ")? (Optional SPACE)? (SelectPlayer SPACE)? Action (SPACE Duration)?
2012-10-29 00:33:21 -07:00
;
Optional
= "you may have"
/ "you may"
2012-11-02 19:52:44 -07:00
/ "if you don't,"
2012-11-02 22:35:21 -07:00
/ "if you do,"
;
2012-11-03 18:33:50 -07:00
AbilityWord
= "metalcraft"
;
2012-10-28 22:36:37 -07:00
KeywordAbility
= Keyword
/ Enchant
;
ActivatedAbility
= ActivationCosts ": " SpellEffect
;
2012-11-03 06:11:57 -07:00
ActivationCosts
= Action ("," SPACE Action)*
;
2012-10-28 22:36:37 -07:00
TriggeredAbility
= Trigger ", " SpellEffect
;
Trigger
= EntersBattlefieldTrigger
/ LeavesBattlefieldTrigger
2012-10-29 00:59:19 -07:00
/ EntersGraveyardTrigger
2012-10-28 22:43:35 -07:00
/ BeginningUpkeepTrigger
2012-10-29 01:39:28 -07:00
/ BeginningEndStepTrigger
2012-10-28 22:44:37 -07:00
/ DiesTrigger
2012-10-28 23:10:15 -07:00
/ DealsDamageTrigger
2012-10-29 00:26:09 -07:00
/ CastTrigger
2012-10-29 01:37:29 -07:00
/ BecomesTargetTrigger
2012-11-02 20:16:04 -07:00
/ BlocksTrigger
/ AttacksTrigger
/ BlockedTrigger
2012-10-28 22:36:37 -07:00
;
Action
= DestroyNoRegenAction
/ DestroyAction
/ ExileAction
/ CounterAction
2012-10-28 00:30:18 -07:00
/ DamageAction
/ DrawAction
/ DiscardAction
2012-10-28 00:30:18 -07:00
/ TapAction
2012-10-28 03:49:34 -07:00
/ PreventAction
/ RegenerateAction
/ PumpAction
/ GainAction
/ BounceAction
/ AddManaAction
/ ReturnAction
/ SacrificeAction
/ ChangeLifeAction
/ ChangeCounterAction
/ PutTokenAction
2012-10-28 23:14:07 -07:00
/ ControlAction
2012-10-29 01:03:09 -07:00
/ ShuffleAction
2012-10-29 01:30:12 -07:00
/ DoesntUntapAction
2012-11-02 19:52:44 -07:00
/ EntersTapped
/ EntersWithCounter
/ PayManaAction
2012-11-03 06:14:50 -07:00
/ MillAction
2012-11-03 07:00:17 -07:00
/ ReanimateAction
2012-11-03 18:46:59 -07:00
/ PoisonAction
2012-10-28 00:30:18 -07:00
;
Keyword
2012-10-28 22:36:37 -07:00
= "flash"
/ "flying"
/ "haste"
/ "defender"
/ "vigilance"
/ "reach"
2012-10-29 00:55:19 -07:00
/ "battle cry"
2012-10-28 22:36:37 -07:00
/ "trample"
/ "first strike"
/ "double strike"
/ "infect"
/ "wither"
/ "fear"
/ "shadow"
/ "storm"
/ "swampwalk"
2012-10-29 07:29:53 -07:00
/ "plainswalk"
2012-10-28 22:36:37 -07:00
/ "forestwalk"
/ "islandwalk"
/ "mountainwalk"
/ "changeling"
/ "deathtouch"
/ "lifelink"
/ "exalted"
/ "shroud"
/ "persist"
/ "protection from all colors"
2012-10-28 22:36:37 -07:00
/ "protection from black"
/ "protection from red"
/ "protection from white"
/ "protection from blue"
/ "protection from green"
/ "protection from artifacts"
/ "protection from creatures"
/ "protection from everything"
/ "hexproof"
/ "soulbond"
/ "undying"
/ "flanking"
/ "intimidate"
/ "living weapon"
/ "totem armor"
/ "affinity for artifacts"
2012-10-28 22:36:37 -07:00
/ "bushido" SPACE Number
2012-10-29 07:16:52 -07:00
/ "rampage" SPACE Number
2012-10-28 22:36:37 -07:00
/ "soulshift" SPACE Number
/ "fading" SPACE Number
/ "devour" SPACE Number
/ "modular" SPACE Number
/ "vanishing" SPACE Number
/ "bloodthirst" SPACE Number
/ "buyback" SPACE ManaCost
/ "kicker" SPACE ManaCost
2012-11-03 06:56:30 -07:00
/ "multikicker" SPACE ManaCost
2012-10-28 22:36:37 -07:00
/ "equip" SPACE ManaCost
/ "cumulative upkeep" SPACE ManaCost
2012-11-02 21:10:01 -07:00
/ "replicate" SPACE ManaCost
2012-11-03 07:18:12 -07:00
/ "miracle" SPACE ManaCost
2012-11-02 21:37:01 -07:00
/ "level up" SPACE ManaCost
/ "@ can't block."
2012-10-28 00:30:18 -07:00
/ "@ is unblockable."
/ "@ attacks each turn if able."
/ "@ is indestructible."
/ "@ can't be countered."
;
SacrificeAction
2012-11-02 20:04:35 -07:00
= "sacrifice" "s"? SPACE SelectPermanent (SPACE "unless you" SPACE Action)?
;
2012-10-28 02:35:18 -07:00
ColorlessCost
= "{" Number "}"
2012-10-28 22:36:37 -07:00
/ "{x}"
2012-10-28 02:35:18 -07:00
;
2012-10-29 07:15:19 -07:00
SingleColor
2012-10-28 22:36:37 -07:00
= "{b}"
/ "{u}"
/ "{g}"
/ "{r}"
/ "{w}"
2012-10-28 02:35:18 -07:00
;
HybridSingleCost
2012-10-28 22:36:37 -07:00
= "{g/u}"
/ "{g/w}"
/ "{r/g}"
/ "{r/w}"
/ "{u/r}"
/ "{u/b}"
/ "{b/g}"
/ "{w/b}"
;
2012-10-28 02:35:18 -07:00
ManaCost
2012-11-03 19:42:26 -07:00
= ColorlessCost+ SingleColor*
2012-10-29 07:15:19 -07:00
/ SingleColor+
/ HybridSingleCost+
2012-10-28 00:30:18 -07:00
;
2012-10-29 01:37:29 -07:00
BecomesTargetTrigger
= "when @ becomes the target of a spell or ability"
;
2012-11-02 20:16:04 -07:00
BlocksTrigger
= "whenever @ blocks"
;
BlockedTrigger
= "whenever @ becomes blocked"
;
2012-10-29 00:26:09 -07:00
CastTrigger
2012-11-03 06:31:42 -07:00
= "whenever " SelectPlayer " cast " SelectSpell
/ "when " SelectPlayer " cast " SelectSpell
2012-10-29 00:26:09 -07:00
;
LeavesBattlefieldTrigger
= "when @ leaves the battlefield"
;
2012-10-29 00:59:19 -07:00
EntersGraveyardTrigger
2012-10-29 01:03:09 -07:00
= "when @ is put into a graveyard from the battlefield"
/ "when @ is put into a graveyard from anywhere"
2012-10-29 00:59:19 -07:00
;
2012-10-28 22:36:37 -07:00
EntersBattlefieldTrigger
= "when @ enters the battlefield"
2012-11-02 19:52:44 -07:00
/ "as @ enters the battlefield"
/ "whenever @ or another ally enters the battlefield under your control"
2012-10-28 22:36:37 -07:00
;
2012-10-29 01:39:28 -07:00
BeginningEndStepTrigger
= "at the beginning of the end step"
;
2012-10-28 22:43:35 -07:00
BeginningUpkeepTrigger
= "at the beginning of your upkeep"
/ "at the beginning of each player's upkeep"
2012-10-28 22:43:35 -07:00
;
2012-10-28 22:44:37 -07:00
DiesTrigger
= "when @ dies"
;
2012-10-28 23:10:15 -07:00
DealsDamageTrigger
= "whenever @ deals" " combat"? " damage" (" to a " DamageReceiver)?
;
DamageReceiver
= "itself"
2012-11-02 22:18:37 -07:00
/ SelectPlayer
2012-11-02 22:23:48 -07:00
/ SelectCreature (" or " SelectPlayer)?
;
AttacksTrigger
= "whenever @ attacks"
;
2012-11-03 18:46:59 -07:00
PoisonAction
= "gets " Count " poison counters"
/ "gets a poison counter"
2012-11-03 18:46:59 -07:00
;
2012-11-03 07:00:17 -07:00
ReanimateAction
= "put " SelectCard " from a graveyard onto the battlefield under your control"
;
2012-11-03 06:14:50 -07:00
MillAction
= "put" "s"? " the top " Count " cards of his or her library into his or her graveyard"
/ "put" "s"? " the top card of his or her library into his or her graveyard"
2012-11-03 06:14:50 -07:00
;
2012-10-29 01:30:12 -07:00
DoesntUntapAction
= SelectPermanent " doesn't untap during its controller's untap step"
/ SelectPermanent " doesn't untap during its controller's next untap step"
/ SelectPermanent " doesn't untap during your untap step"
2012-10-29 01:30:12 -07:00
;
2012-10-29 01:03:09 -07:00
ShuffleAction
= "shuffle it into its owner's library"
/ "shuffle your library"
;
PutTokenAction
2012-10-28 22:36:37 -07:00
= "put a 1/1 green saproling creature token onto the battlefield"
/ "put a 1/1 gnome artifact creature token onto the battlefield"
2012-11-03 06:57:42 -07:00
/ "put a token that's a copy of " SelectPermanent " onto the battlefield"
;
2012-10-28 23:14:07 -07:00
ControlAction
= "control" "s"? SPACE SelectPermanent
2012-11-03 04:40:35 -07:00
/ "gain control of " SelectPermanent
2012-10-28 23:14:07 -07:00
;
ChangeCounterAction
2012-10-28 22:36:37 -07:00
= "remove a " CounterType " counter from " SelectPermanent
/ "remove " Count SPACE CounterType " counters from " SelectPermanent
/ "put a " CounterType " counter on " SelectPermanent
/ "put " Count SPACE CounterType " counters on " SelectPermanent
;
PayManaAction
= "pay" "s"? SPACE ManaCost
2012-11-03 06:11:57 -07:00
/ ManaCost
;
ChangeLifeAction
2012-11-03 06:31:42 -07:00
= "lose" "s"? SPACE Number " life"
/ "gain" "s"? SPACE Number " life"
/ "pay" "s"? SPACE Number " life"
2012-10-28 06:41:17 -07:00
;
SelectPlayer
2012-10-28 22:36:37 -07:00
= "target player"
/ "target opponent"
2012-10-28 22:51:17 -07:00
/ "that player"
2012-10-29 01:44:02 -07:00
/ "each player"
2012-11-03 03:51:17 -07:00
/ "each opponent"
2012-11-03 06:23:35 -07:00
/ "an opponent"
2012-10-28 22:36:37 -07:00
/ "you"
2012-11-03 06:23:35 -07:00
/ "he or she"
/ "its controller"
2012-11-02 22:23:48 -07:00
/ "player"
2012-10-28 05:50:47 -07:00
;
ReturnAction
2012-10-28 22:36:37 -07:00
= "return " SelectCard " from your graveyard to your hand"
/ "return " SelectCard " from your graveyard to the battlefield"
2012-10-28 23:04:28 -07:00
/ "return " SelectCard " to the battlefield under its owner's control"
;
2012-10-28 02:27:04 -07:00
BounceAction
2012-11-03 06:23:35 -07:00
= "return" "s"? SPACE SelectPermanent SPACE "to its owner's hand"
/ "put" "s"? SPACE SelectPermanent SPACE "on top of its owner's library"
2012-11-03 07:01:57 -07:00
/ "put" "s"? SPACE SelectPermanent SPACE "on the bottom of its owner's library"
2012-10-28 02:27:04 -07:00
;
2012-10-28 03:49:34 -07:00
PreventAction
2012-11-03 07:28:27 -07:00
= "prevent the next " Number SPACE Damage " that would be dealt to " DamageReceiver
/ "prevent all " Damage " that would be dealt to and dealt by " DamageReceiver
/ "prevent all " Damage " that would be dealt to " DamageReceiver
/ "prevent all " Damage " that would be dealt by " DamageReceiver
/ "prevent all " Damage " that would be dealt"
2012-11-03 07:37:33 -07:00
/ "if damage would be dealt to " DamageReceiver ", prevent that damage"
2012-11-03 07:24:08 -07:00
;
Damage
= "damage"
/ "combat damage"
2012-10-28 03:49:34 -07:00
;
2012-10-28 00:30:18 -07:00
TapAction
2012-11-03 06:11:57 -07:00
= "{t}"
/ "tap" SPACE SelectPermanent
/ "{q}"
2012-10-28 22:36:37 -07:00
/ "untap" SPACE SelectPermanent
2012-10-29 00:35:37 -07:00
/ "tap or untap" SPACE SelectPermanent
2012-10-28 00:30:18 -07:00
;
RegenerateAction
2012-11-02 21:07:22 -07:00
= "regenerate" SPACE SelectPermanent
2012-10-28 00:30:18 -07:00
;
DamageAction
= SelectPermanent " deals " Number " damage to " DamageReceiver
2012-11-03 03:47:28 -07:00
/ SelectPermanent " deals damage equal to its power to " DamageReceiver
/ SelectPermanent " deals damage equal to the number of " CounterType " counters on it to " DamageReceiver
/ Number " damage to " DamageReceiver
2012-10-28 00:30:18 -07:00
;
EntersTapped
2012-11-02 19:52:44 -07:00
= "@ enters the battlefield tapped"
2012-10-28 00:30:18 -07:00
;
EntersWithCounter
2012-11-02 19:52:44 -07:00
= "@ enters the battlefield with a " CounterType " counter on it"
/ "@ enters the battlefield with " Count SPACE CounterType " counters on it"
2012-10-28 06:02:31 -07:00
;
CounterType
= "+1/+1"
/ "-1/-1"
/ "+1/+0"
2012-10-28 06:02:31 -07:00
/ "charge"
2012-10-28 07:00:15 -07:00
/ "depletion"
2012-10-28 06:07:41 -07:00
/ "spore"
2012-10-28 06:14:02 -07:00
/ "storage"
2012-10-29 00:26:09 -07:00
/ "ki"
/ "verse"
/ "quest"
2012-11-02 20:50:19 -07:00
/ "fade"
2012-11-03 03:55:59 -07:00
/ "age"
;
Count
= "one"
/ "two"
/ "three"
2012-10-28 06:20:36 -07:00
/ "four"
/ "five"
/ "six"
/ "seven"
/ "eight"
/ "nine"
/ "ten"
2012-10-28 22:36:37 -07:00
/ "x"
;
2012-10-28 00:30:18 -07:00
Enchant
2012-10-28 22:36:37 -07:00
= "enchant" SPACE RestrictedPermanent
/ "enchant player"
2012-10-28 00:30:18 -07:00
;
2012-11-03 03:44:13 -07:00
Duration
= "until end of turn"
2012-11-03 06:23:35 -07:00
/ "for as long as " SelectPlayer " control @"
2012-11-03 18:33:50 -07:00
/ "as long as you control three or more artifacts"
2012-11-03 07:28:27 -07:00
/ "this turn"
2012-11-03 03:44:13 -07:00
;
GainAction
= (SelectPermanent SPACE)? "has " Keyword
2012-11-03 03:44:13 -07:00
/ (SelectCreature SPACE)? "gains " Keyword
/ (SelectCreature SPACE)? "loses " Keyword
/ SelectPermanent " have " Keyword
2012-11-03 03:44:13 -07:00
/ SelectCreature " gain " Keyword
/ SelectCreature " lose " Keyword
2012-10-28 03:34:39 -07:00
;
PumpAction
2012-11-03 03:44:13 -07:00
= SelectCreature " get" "s"? SPACE SignedNumber "/" SignedNumber
2012-10-28 00:30:18 -07:00
;
AddManaAction
2012-10-28 22:36:37 -07:00
= "add " ManaSource " to your mana pool"
;
ManaSource
= "{1}"
2012-10-29 07:15:19 -07:00
/ SingleColor (", " SingleColor)* ", or " SingleColor
/ SingleColor " or " SingleColor
/ SingleColor
/ "one mana of any color"
2012-10-28 00:30:18 -07:00
;
DrawAction
= Draw " a card"
/ Draw " " Count " cards"
;
Draw
= "draw" "s"?
2012-10-28 05:41:27 -07:00
;
DiscardAction
= Discard SPACE SelectCard " at random"?
/ Discard SPACE Count SPACE RestrictedCard " at random"
;
Discard
= "discard" "s"?
;
DestroyNoRegenAction
2012-10-28 22:36:37 -07:00
= "destroy " SelectPermanent EOS SPACE NoRegen
;
DestroyAction
2012-10-28 22:36:37 -07:00
= "destroy " SelectPermanent
;
ExileAction
2012-10-28 22:36:37 -07:00
= "exile " SelectPermanent
;
CounterAction
= "counter " SelectSpell (" unless " SingleEffect)?
;
SelectOp
= "target"
2012-11-02 21:58:23 -07:00
/ "all other"
/ "all"
2012-10-28 06:56:23 -07:00
/ "an"
/ "a"
2012-11-03 18:57:12 -07:00
/ "each other"
2012-10-29 00:46:13 -07:00
/ "each"
/ "enchanted"
/ "equipped"
2012-10-28 23:04:28 -07:00
/ "the"
2012-10-29 02:29:40 -07:00
/ "that"
2012-10-29 00:55:19 -07:00
/ "other"
;
2012-10-28 06:14:02 -07:00
SelectCard
2012-10-29 00:33:21 -07:00
= "@"
/ "it"
/ SelectOp SPACE RestrictedCard
2012-10-28 06:16:51 -07:00
;
2012-10-28 06:52:29 -07:00
SelectCreature
= "@"
2012-10-28 23:05:45 -07:00
/ "it"
2012-10-29 02:16:29 -07:00
/ (SelectOp SPACE)? RestrictedCreature
2012-10-28 06:52:29 -07:00
;
SelectPermanent
2012-10-28 06:16:51 -07:00
= "@"
2012-10-28 23:05:45 -07:00
/ "it"
/ (SelectOp SPACE)? RestrictedPermanentCombination
2012-10-28 06:16:51 -07:00
;
2012-10-28 06:14:02 -07:00
SelectSpell
2012-11-02 20:21:36 -07:00
= "@"
/ "it"
/ SelectOp SPACE RestrictedSpell
2012-10-28 06:16:51 -07:00
;
2012-10-28 06:14:02 -07:00
RestrictedPermanentCombination
2012-10-28 06:14:02 -07:00
= RestrictedPermanent ", " RestrictedPermanent ", or " RestrictedPermanent
/ RestrictedPermanent ", " RestrictedPermanent ", and " RestrictedPermanent
2012-10-28 06:14:02 -07:00
/ RestrictedPermanent " or " RestrictedPermanent
/ RestrictedPermanent " and " RestrictedPermanent
2012-10-28 06:14:02 -07:00
/ RestrictedPermanent
;
RestrictedPermanent
= (PermanentRestriction SPACE)? Permanent (SPACE PermanentRestriction)?
2012-10-28 06:14:02 -07:00
/ RestrictedCreature
2012-10-28 06:44:01 -07:00
/ RestrictedLand
/ RestrictedArtifact
/ RestrictedEnchantment
/ RestrictedTribal
;
RestrictedArtifact
= Artifact (SPACE PermanentRestriction)?
/ (PermanentRestriction SPACE)? Artifact (SPACE PermanentRestriction)?
;
RestrictedEnchantment
= (PermanentRestriction SPACE)? Enchantment (SPACE PermanentRestriction)?
;
RestrictedLand
2012-10-28 22:53:17 -07:00
= (LandRestriction SPACE)? Land (SPACE LandRestriction)?
;
RestrictedTribal
= Tribal
;
2012-10-28 06:14:02 -07:00
RestrictedSpell
= (SpellRestriction SPACE)? Spell (SPACE SpellRestriction)?
;
2012-10-28 05:34:07 -07:00
SpellRestriction
= "creature"
2012-10-29 00:26:09 -07:00
/ "white, blue, black, or red"
2012-10-28 05:34:07 -07:00
/ "red or green"
2012-10-29 00:26:09 -07:00
/ "red"
/ "white"
/ "black"
/ "blue"
/ "green"
/ "multicolored"
2012-10-28 05:34:07 -07:00
/ "noncreature"
2012-10-29 00:26:09 -07:00
/ "enchantment"
/ "spirit or arcane"
/ "treefolk"
/ "vampire creature"
2012-10-29 00:33:21 -07:00
/ "wizard"
2012-11-03 18:56:04 -07:00
/ "artifact"
/ "during an opponent's turn"
/ "instant or sorcery"
/ "instant"
/ "sorcery"
2012-11-03 18:50:23 -07:00
/ "with infect"
2012-11-03 18:53:24 -07:00
/ "with converted mana cost " Number " or less"
/ "with converted mana cost " Number " or greater"
/ "with converted mana cost " Number
2012-10-28 05:34:07 -07:00
;
2012-10-28 06:14:02 -07:00
RestrictedCard
= (CardRestriction SPACE)? Card
;
2012-10-28 05:34:07 -07:00
CardRestriction
= "exiled"
/ SpellRestriction
2012-10-28 05:34:07 -07:00
;
2012-10-28 06:14:02 -07:00
RestrictedCreature
2012-10-28 05:34:07 -07:00
= (CreatureRestriction SPACE)? Creature (SPACE CreatureRestriction)?
;
2012-11-02 22:32:31 -07:00
PermanentRestriction
= "black or red"
/ "green or white"
/ "black or red"
2012-11-02 20:04:35 -07:00
/ "blue or black"
2012-11-02 20:20:15 -07:00
/ "red or green"
2012-10-29 02:07:36 -07:00
/ "blue"
/ "white"
/ "green"
/ "red"
2012-10-29 02:08:16 -07:00
/ "black"
2012-11-02 22:32:31 -07:00
/ "tapped"
/ "untapped"
/ "noncreature"
2012-11-03 06:23:35 -07:00
/ SelectPlayer " control" "s"?
/ SelectPlayer " don't control"
2012-11-02 22:32:31 -07:00
/ "nonblack"
/ "nonartifact, nonblack"
/ "nonartifact"
2012-10-29 00:11:35 -07:00
/ "artifact"
2012-11-02 22:32:31 -07:00
/ "with converted mana cost " Number " or less"
/ "with converted mana cost " Number " or greater"
/ "with converted mana cost " Number
;
CreatureRestriction
= "with power " Number " or less"
/ "with power " Number " or greater"
/ "with " Keyword
/ "without " Keyword
/ "tapped or blocking"
/ "blocked"
/ "attacking or blocking"
/ "attacking"
2012-11-02 21:42:20 -07:00
/ Tribal
2012-11-02 22:32:31 -07:00
/ PermanentRestriction
;
2012-11-03 06:23:35 -07:00
LandRestriction
= "nonbasic"
/ "basic"
/ PermanentRestriction
;
Tribal
2012-10-28 22:36:37 -07:00
= "spirit" "s"?
/ "island" "s"?
/ "wall" "s"?
2012-10-29 07:41:53 -07:00
/ "human"
/ "elf"
2012-11-02 21:07:22 -07:00
/ "golem"
2012-11-02 21:42:20 -07:00
/ "bird"
2012-11-02 21:09:02 -07:00
/ "goblin"
/ "saproling"
2012-11-02 21:42:20 -07:00
/ "ally"
/ "scarecrow"
/ "pentavite"
2012-11-02 22:25:46 -07:00
/ "wizard" "s"?
/ "beast" "s"?
/ "cleric" "s"?
2012-11-02 21:42:20 -07:00
/ "non-vampire, non-werewolf, non-zombie"
;
Creature
= "creature" "s"?
;
Artifact
= "artifact" "s"?
2012-10-29 00:13:07 -07:00
/ "equipment" "s"?
;
Land
= "land" "s"?
;
Enchantment
= "enchantment" "s"?
;
Permanent
= "permanent" "s"?
;
Card
= "card" "s"?
;
Spell
= "spell" "s"?
;
NoRegen
2012-10-28 22:36:37 -07:00
= "it can't be regenerated"
/ "they can't be regenerated"
;
SignedNumber
= Sign Number
;
2012-10-28 00:30:18 -07:00
Number
= [0-9]+
2012-10-28 23:10:15 -07:00
/ "that much"
2012-10-29 02:20:20 -07:00
/ "x"
2012-10-28 00:30:18 -07:00
;
Sign
= "+"
2012-10-28 03:32:08 -07:00
/ "-"
;
SPACE
= " "
;
2012-10-28 02:27:04 -07:00
EOS
= "."
;
2012-10-28 02:27:04 -07:00
EOR
= !_
;