forked from projectmoon/tenebrous-dicebot
Consolidate dice and variable parsers under parser module.
This commit is contained in:
parent
de63fd914e
commit
5643677627
|
@ -1,6 +1,6 @@
|
|||
use crate::context::Context;
|
||||
use crate::error::{BotError, DiceRollingError};
|
||||
use crate::parser::{Amount, Element, Operator};
|
||||
use crate::parser::dice::{Amount, Element, Operator};
|
||||
use itertools::Itertools;
|
||||
use std::convert::TryFrom;
|
||||
use std::fmt;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use crate::cofd::dice::{DicePool, DicePoolModifiers, DicePoolQuality};
|
||||
use crate::error::BotError;
|
||||
use crate::parser::{parse_amounts, DiceParsingError};
|
||||
use crate::parser::dice::{parse_amounts, DiceParsingError};
|
||||
use combine::parser::char::{digit, spaces, string};
|
||||
use combine::{choice, count, many1, one_of, Parser};
|
||||
|
||||
|
@ -201,7 +201,7 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn dice_pool_complex_expression_test() {
|
||||
use crate::parser::*;
|
||||
use crate::parser::dice::*;
|
||||
let modifiers = DicePoolModifiers::custom(DicePoolQuality::Rote, 3);
|
||||
let amounts = vec![
|
||||
Amount {
|
||||
|
|
|
@ -19,7 +19,7 @@ use crate::commands::{
|
|||
use crate::cthulhu::parser::{parse_advancement_roll, parse_regular_roll};
|
||||
use crate::error::BotError;
|
||||
use crate::help::parse_help_topic;
|
||||
use crate::variables::parse_set_variable;
|
||||
use crate::parser::variables::parse_set_variable;
|
||||
use combine::parser::char::{char, letter, space};
|
||||
use combine::{any, many1, optional, Parser};
|
||||
use nom::Err as NomErr;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
use crate::context::Context;
|
||||
use crate::db::Variables;
|
||||
use crate::error::{BotError, DiceRollingError};
|
||||
use crate::parser::{Amount, Element};
|
||||
use crate::{logic::calculate_single_die_amount, parser::DiceParsingError};
|
||||
use crate::logic::calculate_single_die_amount;
|
||||
use crate::parser::dice::{Amount, DiceParsingError, Element};
|
||||
use rand::rngs::StdRng;
|
||||
use rand::Rng;
|
||||
use rand::SeedableRng;
|
||||
|
@ -420,7 +420,7 @@ pub async fn advancement_roll(
|
|||
mod tests {
|
||||
use super::*;
|
||||
use crate::db::sqlite::Database;
|
||||
use crate::parser::{Amount, Element, Operator};
|
||||
use crate::parser::dice::{Amount, Element, Operator};
|
||||
use url::Url;
|
||||
|
||||
macro_rules! dummy_room {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
use super::dice::{AdvancementRoll, DiceRoll, DiceRollModifier};
|
||||
use crate::parser::DiceParsingError;
|
||||
use crate::parser::dice::DiceParsingError;
|
||||
|
||||
//TOOD convert these to use parse_amounts from the common dice code.
|
||||
|
||||
|
@ -30,13 +30,13 @@ pub fn parse_regular_roll(input: &str) -> Result<DiceRoll, DiceParsingError> {
|
|||
}?;
|
||||
|
||||
let modifier = parse_modifier(modifiers_str)?;
|
||||
let amount = crate::parser::parse_single_amount(amounts_str)?;
|
||||
let amount = crate::parser::dice::parse_single_amount(amounts_str)?;
|
||||
Ok(DiceRoll { modifier, amount })
|
||||
}
|
||||
|
||||
pub fn parse_advancement_roll(input: &str) -> Result<AdvancementRoll, DiceParsingError> {
|
||||
let input = input.trim();
|
||||
let amounts = crate::parser::parse_single_amount(input)?;
|
||||
let amounts = crate::parser::dice::parse_single_amount(input)?;
|
||||
|
||||
Ok(AdvancementRoll {
|
||||
existing_skill: amounts,
|
||||
|
@ -45,9 +45,8 @@ pub fn parse_advancement_roll(input: &str) -> Result<AdvancementRoll, DiceParsin
|
|||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
|
||||
use super::*;
|
||||
use crate::parser::{Amount, Element, Operator};
|
||||
use crate::parser::dice::{Amount, Element, Operator};
|
||||
|
||||
#[test]
|
||||
fn regular_roll_accepts_single_number() {
|
||||
|
|
|
@ -50,7 +50,7 @@ pub enum BotError {
|
|||
IoError(#[from] std::io::Error),
|
||||
|
||||
#[error("dice parsing error: {0}")]
|
||||
DiceParsingError(#[from] crate::parser::DiceParsingError),
|
||||
DiceParsingError(#[from] crate::parser::dice::DiceParsingError),
|
||||
|
||||
#[error("command parsing error: {0}")]
|
||||
CommandParsingError(#[from] crate::commands::parser::CommandParsingError),
|
||||
|
@ -59,7 +59,7 @@ pub enum BotError {
|
|||
DiceRollingError(#[from] DiceRollingError),
|
||||
|
||||
#[error("variable parsing error: {0}")]
|
||||
VariableParsingError(#[from] crate::variables::VariableParsingError),
|
||||
VariableParsingError(#[from] crate::parser::variables::VariableParsingError),
|
||||
|
||||
#[error("legacy parsing error")]
|
||||
NomParserError(nom::error::ErrorKind),
|
||||
|
|
|
@ -13,4 +13,3 @@ pub mod matrix;
|
|||
pub mod models;
|
||||
mod parser;
|
||||
pub mod state;
|
||||
pub mod variables;
|
||||
|
|
|
@ -3,7 +3,7 @@ use crate::db::{Rooms, Variables};
|
|||
use crate::error::{BotError, DiceRollingError};
|
||||
use crate::matrix;
|
||||
use crate::models::RoomInfo;
|
||||
use crate::parser::{Amount, Element};
|
||||
use crate::parser::dice::{Amount, Element};
|
||||
use futures::stream::{self, StreamExt, TryStreamExt};
|
||||
use matrix_sdk::{self, identifiers::RoomId, Client};
|
||||
use std::slice;
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
pub mod dice;
|
||||
pub mod variables;
|
Loading…
Reference in New Issue