Skip to content

Instantly share code, notes, and snippets.

@dmdavis
Created June 4, 2012 21:35
Show Gist options
  • Save dmdavis/2870968 to your computer and use it in GitHub Desktop.
Save dmdavis/2870968 to your computer and use it in GitHub Desktop.
Simple PEG.js dice roller
start
= additive
additive
= left:dice "+" right:additive { return left + right; }
/ left:dice "-" right:additive { return left - right; }
/ dice
dice
= left:primary "d" right:primary { var s = 0; for(var i = 0; i < left; i++ ) { s += Math.floor(Math.random() * right) + 1; } return s; }
/ primary
primary
= integer
/ "(" additive:additive ")" { return additive; }
integer "integer"
= digits:[0-9]+ { return parseInt(digits.join(""), 10); }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment