aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/libparser/include/diceparser/diceparserhelper.h
blob: 6190df297117ec40eac852a93a8fa28583ab9c53 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#ifndef DICEPARSERHELPER_H
#define DICEPARSERHELPER_H

class ValidatorList;
class ExecutionNode;

#include <diceparser/diceparser_global.h>

namespace Dice
{
enum class CONDITION_STATE : int
{
    ERROR_STATE,
    ALWAYSTRUE,
    UNREACHABLE,
    REACHABLE
};

enum class ERROR_CODE : int
{
    NO_DICE_ERROR,
    DIE_RESULT_EXPECTED,
    BAD_SYNTAXE,
    ENDLESS_LOOP_ERROR,
    DIVIDE_BY_ZERO,
    NOTHING_UNDERSTOOD,
    NO_DICE_TO_ROLL,
    TOO_MANY_DICE,
    NO_VARIBALE,
    INVALID_INDEX,
    UNEXPECTED_CHARACTER,
    NO_PREVIOUS_ERROR,
    NO_VALID_RESULT,
    SCALAR_RESULT_EXPECTED
};

/**
 * @brief The RESULT_TYPE enum or combinaison
 */
enum class RESULT_TYPE : int
{
    NONE= 0,
    SCALAR= 1,
    STRING= 2,
    DICE_LIST= 4
};
/**
 * @brief The ConditionType enum defines compare method
 */
enum ConditionType
{
    OnEach,
    OnEachValue,
    OneOfThem,
    AllOfThem,
    OnScalar
};

enum class CompareOperator
{
    Equal,
    GreaterThan,
    LesserThan,
    GreaterOrEqual,
    LesserOrEqual,
    Different
};
enum class ArithmeticOperator
{
    PLUS,
    MINUS,
    DIVIDE,
    MULTIPLICATION,
    INTEGER_DIVIDE,
    POW
};
enum class LogicOperation
{
    OR,
    EXCLUSIVE_OR,
    AND,
    NONE
};

enum class ConditionOperator
{
    Modulo
};

struct DICEPARSER_EXPORT CaseInfo
{
    ValidatorList* validatorList;
    ExecutionNode* node;
};
} // namespace Dice
#endif // DICEPARSERHELPER_H