{"id":13799298,"url":"https://github.com/Rolisteam/DiceParser","last_synced_at":"2025-05-13T06:32:46.887Z","repository":{"id":12826246,"uuid":"15501519","full_name":"Rolisteam/DiceParser","owner":"Rolisteam","description":"Powerful dice Roller is used as discord bot, irc bot, cli tool and inside Rolisteam : 1d20+4, 1L[head,arm,leg,belly,chest], 1d6+1d8, 8+5*3 ","archived":false,"fork":false,"pushed_at":"2024-01-09T18:20:36.000Z","size":1383,"stargazers_count":125,"open_issues_count":22,"forks_count":31,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-11-18T13:48:06.823Z","etag":null,"topics":["c-plus-plus","cli","dice","dice-roller","dice-rolls","discord","discord-bot","gui","irc-bot","qt5","roll","rpg","rpg-dice-roller","rpg-game","rpg-tool","webserver"],"latest_commit_sha":null,"homepage":"http://www.rolisteam.org/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rolisteam.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"COPYING.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-12-29T01:00:29.000Z","updated_at":"2024-08-25T01:34:03.000Z","dependencies_parsed_at":"2024-01-02T22:33:33.141Z","dependency_job_id":"f92b3881-d125-412c-909c-3d141bbb98c9","html_url":"https://github.com/Rolisteam/DiceParser","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rolisteam%2FDiceParser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rolisteam%2FDiceParser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rolisteam%2FDiceParser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rolisteam%2FDiceParser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rolisteam","download_url":"https://codeload.github.com/Rolisteam/DiceParser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253889274,"owners_count":21979595,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","cli","dice","dice-roller","dice-rolls","discord","discord-bot","gui","irc-bot","qt5","roll","rpg","rpg-dice-roller","rpg-game","rpg-tool","webserver"],"created_at":"2024-08-04T00:01:01.024Z","updated_at":"2025-05-13T06:32:46.604Z","avatar_url":"https://github.com/Rolisteam.png","language":"C++","funding_links":[],"categories":["Libraries"],"sub_categories":["New Functionality"],"readme":"[![Logo](https://raw.githubusercontent.com/Rolisteam/rolisteam/master/resources/logo/1000-rolisteam.png)](http://www.rolisteam.org)\n\n# DiceParser\n\nRolisteam Dice Parser run dice commands. It is available on several platforms.\nThe syntax is simple and powerful.\n\n[Full documentation here](https://invent.kde.org/rolisteam/rolisteam-diceparser/-/blob/master/HelpMe.md)\n\n\n## [Invite to Your Discord Server](https://discordapp.com/oauth2/authorize?\u0026client_id=279722369260453888\u0026scope=bot\u0026permissions=0)\n\n[![Discord Bots](https://discordbots.org/api/widget/279722369260453888.svg)](https://discordbots.org/bot/279722369260453888)\n\n\n## Features\n\n* `99.9%` uptime\n* Roll any kind of dice\n* Customizable prefix\n* Custom alias/macro to improve game experience\n* Manage colorized dice\n* Many operators\n\n## Examples:\n\n### 3D100\nRoll 3 dice with 100 faces\n\n### 10D10e[=10]s\nRoll 10 dice with 10 faces, 10 explodes, and sort the result.\n\n### 100291D66666666s\nroll 100291 dice with 66666666666 faces and sort result\n\n### 15D10c[\u003e7]\nroll 15 dice with 10 faces and it counts number of dice which are above 7\n\n### 1D8+2D6+7\nroll 1 die with 8 faces and add the result to 2 dice with 6 faces and add 7.\n\n### D25\nroll 1 die with 25 faces\n\n### 88-1D20\n88 minus the value of 1 die of 20 faces\n\n### 8+8+8\ncompute: 24\n\n### 100/28*3\ncompute: 100/28 = 3\n3*3 = 9\n\n\nMore examples at : https://invent.kde.org/rolisteam/rolisteam-diceparser/-/blob/master/HelpMe.md\n\n## Grammar\nThe grammar is something like this:\n\n```\nProgram =: Instruction [InstructionSeparator, Instruction]* Comment\nInstructionSeparator = ;\nInstruction =: Expression ([Operator, Expression]* | [Option]*)\nOperator =: ScalarOperator\nExpression =: OpenParenthesis Expression closeParenthesis\n| Option*\n| [Operator, Expression]*\n| Operand Dice\n| Command\n| function\n| NodeOperator [Option]*\n| ValuesList\n| Dice (Operand == 1)\nOperand =: DynamicVariable | Number | String\nOpenParenthesis = (\ncloseParenthesis = )\nOpenList = [\nCloseList = ]\nListSeparator = ,\nValuesList=: OpenList (DynamicVariable | Number)? [ ListSeparator,(DynamicVariable | Number)]*  CloseList\nDice =: DiceOperator [uniqueValue] DiceParameter\nDiceOperator =: D ParameterDice | L ParameterList\nDiceParameter =: ParameterDice | ParameterList\nParameterDice =: Number|Range\nParameterList =: List\nList=: OpenList String[Probability] [ListSeparator,String[Probability]]* CloseList\nProbability=: OpenList (Range|Percentage) CloseList\nPercentage =: number\nfunction =: functionName OpenParenthesis [function_args] closeParenthesis\nfunction_args =: Instruction [InstructionSeparator, Instruction] | Operand | ValidatorList\nfunctionName =: repeat\nOption =: Keep\n| KeepAndExplode\n| Filter\n| Sort\n| Count\n| Reroll\n| RerollUntil\n| RerollAndAdd\n| Explode\n| Merge\n| Bind\n| Occurences\n| Unique\n| Paint\n| If\n| Split\n| Group\nRange =: OpenList Number RangeSeparator Number CloseList\nRangeSeparator =: ..\nScalarOperator =: [x,-,*,x,/,**]\nnumber =: [-] [0-9]+ | constantValue\nOpenVaribale=: ${\nCloseVariable=: }\nconstantValue =: OpenVaribale (id | label) CloseVariable\nid=[_,a-z][_,A-z,0-9]* # must respect rules of QML id\nlabel=.*\nvariable = OpenVaribale [0-9]+ CloseVariable\nValidatorList =: OpenList CompareMethod Validator [LogicOpetator CompareMethod Validator]* CloseList\nLogicOpetator =: AND | XOR |  OR\nCompareMethod =: Each |  All | Scalar | ANY\nEach=:\nAll=: *\nScalar=: :\nANY=: .\nAND =: \u0026\nXOR =: ^\nOR =: |\nAscendant=:l\nValidator =: BooleanValidator | RangeValidator | OperationValidator\nCompareOpetator =: = | \u003e | \u003e= | \u003c | \u003c= | !=\nRangeValidator =: Range\nOperationValidator =: Modulo operandNode BooleanValidator\nModulo =: %\nBooleanValidator =: [=]Operand | [CompareOpetator Operand]\nListOfValue=: String[Range],ListOfValue | String[Range]\nString =: .*[^ListSeparator]\nKeep =: k[Ascendant] Number\nKeepAndExplode =: K[Ascendant] number\nFilter =: f ValidatorList\nSort =: s[Ascendant]\nCount =: c ValidatorList\nReroll =: r ValidatorList\nRerollUntil =: R ValidatorList\nRerollAndAdd =: a ValidatorList\nMerge =: m\nBind =: b\nOccurences =: OccurencesWidth ( ListSeparator  number | ValidatorList)\nOccurencesWidth =: number\nunique =: u\nPainter =: p PainterParameters\nPainterParameters =: OpenList PairColorOccurence [ListSeparator , PairColorOccurence]* CloseList\nPairColorOccurence =: Color PairSeparator Number\nPairSeparator =: :\nIf =: i [compareMethod] ValidatorList Bloc[Bloc]\ncompareMethod =: OnEach | OneOfThem | AllOfThem | onScalar\nOnEach =: ''\nOneOfThem = '.'\nAllOfThem = '*'\nonScalar = ':'\nBloc =: OpenBranch Expression CloseBranch\nOpenBloc =: {\nCloseBloc =: }\nSplit =: y\nGroup =: g Number\nSort =: s\nGroup =: number\nExplode =: e ValidatorList\nNodeOperator = Jumpbackward\nJumpbackward =: @\nMerge =: m | m Expression\nCommand =: help | la\nuniqueValue = u\nComment =: StartComment String\nStartComment =: #\n```\n\n\n# Compilation\n\n```\ngit clone --recursive https://invent.kde.org/rolisteam/rolisteam-diceparser.git\ncd rolisteam-diceparser\nmkdir build\ncd build\ncmake ../ -DBUILD_CLI=ON\nmake\nsudo make install\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRolisteam%2FDiceParser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRolisteam%2FDiceParser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRolisteam%2FDiceParser/lists"}