amath
1.8.5
Simple command line calculator
operatordefs.h
Go to the documentation of this file.
1
/*-
2
* Copyright (c) 2014-2018 Carsten Sonne Larsen <cs@innolan.net>
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
13
*
14
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
*
25
* Project homepage:
26
* https://amath.innolan.net
27
*
28
*/
29
30
#
ifndef
AMATH_OPERATORDEFS_H
31
#
define
AMATH_OPERATORDEFS_H
32
33
#
include
"symbol.h"
34
35
/**
36
* @file operatordefs.h
37
* @brief Operator defitions used by lexer and other classes
38
*/
39
40
/**
41
* @brief Character definition of operators
42
* @details The struct id holding a character representation of an operator
43
* tied with its symbol.
44
*/
45
struct
operatordef
46
{
47
char
chr
;
48
Symbol
symbol
;
49
};
50
51
/**
52
* @brief Character representation of operators tied with their symbols
53
*/
54
static
const
operatordef
operators
[] = {
55
{
'+'
,
symplus
},
56
{
'-'
,
symminus
},
57
{
'/'
,
symslash
},
58
{
'*'
,
symtimes
},
59
{
'^'
,
sympower
},
60
{
'('
,
symlparen
},
61
{
')'
,
symrparen
},
62
{
'|'
,
symabsolute
},
63
{
'='
,
symassign
},
64
{
'!'
,
symfactorial
},
65
{
'\n'
,
symdelimiter
},
66
{
';'
,
symdelimiter
}
67
};
68
69
#
endif
symlparen
Definition:
symbol.h:55
symrparen
Definition:
symbol.h:56
operatordef::symbol
Symbol symbol
Definition:
operatordefs.h:48
symassign
Definition:
symbol.h:54
symplus
Definition:
symbol.h:48
symslash
Definition:
symbol.h:51
operatordef::chr
char chr
Definition:
operatordefs.h:47
symfactorial
Definition:
symbol.h:47
symabsolute
Definition:
symbol.h:53
symtimes
Definition:
symbol.h:50
operatordef
Character definition of operators.
Definition:
operatordefs.h:45
symminus
Definition:
symbol.h:49
sympower
Definition:
symbol.h:52
operators
static const operatordef operators[]
Character representation of operators tied with their symbols.
Definition:
operatordefs.h:54
symdelimiter
Definition:
symbol.h:80
src
main
operatordefs.h
Generated by
1.8.13