mirror of
https://github.com/Sosokker/Calculator-for-Matrix-and-Algebra.git
synced 2025-12-18 20:54:05 +01:00
Add Structure of expression
This commit is contained in:
parent
91a37048d3
commit
ba1f7bac71
91
nessesary/parser/structure.py
Normal file
91
nessesary/parser/structure.py
Normal file
@ -0,0 +1,91 @@
|
||||
#VARIABLE AND NUMBER
|
||||
VAR = 0
|
||||
NUM = 1
|
||||
POINT = 2
|
||||
|
||||
# OPERATOR
|
||||
PLUS_S = 3
|
||||
MINUS_S = 4
|
||||
MUL_S = 5
|
||||
DIV_S = 6
|
||||
EXP_S = 7
|
||||
|
||||
# BRACKET AND PARENTHESES
|
||||
LEFT_BRAC = 11
|
||||
RIGHT_BRAC = 12
|
||||
LEFT_PAR = 10
|
||||
RIGHT_PAR = 11
|
||||
|
||||
#FUNCTION
|
||||
SQRT_FUNC = 100
|
||||
SIN_FUNC = 101
|
||||
COS_FUNC = 102
|
||||
TAN_FUNC = 103
|
||||
SEC_FUNC = 104
|
||||
COSEC_FUNC = 105
|
||||
COT_FUNC = 106
|
||||
ASIN_FUNC = 107
|
||||
ACOS_FUNC = 108
|
||||
ATAN_FUNC = 109
|
||||
ASEC_FUNC = 110
|
||||
ACOSEC_FUNC = 111
|
||||
ACOT_FUNC = 112
|
||||
FACTORIAL = 113
|
||||
LOG = 114
|
||||
LN = 115
|
||||
|
||||
ALPHABET_LIST = ['a', 'b', 'c', 'd', 'e', 'f',
|
||||
'g', 'h', 'i', 'j', 'k', 'l',
|
||||
'm', 'n', 'o', 'p', 'q', 'r', 's'
|
||||
, 't', 'u', 'v', 'w', 'x', 'y', 'z']
|
||||
|
||||
NUM_LIST = ['1','2','3','4','5','6','7','8','9','0']
|
||||
|
||||
def general_parse(expr):
|
||||
|
||||
result_list = []
|
||||
for value in expr:
|
||||
if value == "+":
|
||||
result_list.append(PLUS_S)
|
||||
elif value == "-":
|
||||
result_list.append(MINUS_S)
|
||||
elif value == "*":
|
||||
result_list.append(MUL_S)
|
||||
elif value == "/":
|
||||
result_list.append(DIV_S)
|
||||
elif (value == "^") or (value == "*"):
|
||||
result_list.append(EXP_S)
|
||||
elif value == ".":
|
||||
result_list.append(POINT)
|
||||
|
||||
elif value == "(":
|
||||
result_list.append(LEFT_PAR)
|
||||
elif value == ")":
|
||||
result_list.append(RIGHT_PAR)
|
||||
elif value == "[":
|
||||
result_list.append(LEFT_BRAC)
|
||||
elif value == "]":
|
||||
result_list.append(RIGHT_BRAC)
|
||||
|
||||
elif value in ALPHABET_LIST:
|
||||
result_list.append(VAR)
|
||||
elif value in NUM_LIST:
|
||||
result_list.append(NUM)
|
||||
|
||||
"""
|
||||
MEANING OF EACH PATTERN EXPRESSION.
|
||||
RESULT_LIST MEANING
|
||||
[1,1,1,...] 1231..
|
||||
[0,0,0] xyz
|
||||
[1,1,2,1,1] 12.32
|
||||
[1,1,0] 15x
|
||||
[10,11] ()
|
||||
[12,13] []
|
||||
[114,10,,11] log()
|
||||
[115,10,,11] ln()
|
||||
[1,1,113] 31!
|
||||
[101,10,,11] sin()
|
||||
[1,0,3,10,1,2,1,
|
||||
101,10,1,1,1,11,11] 5x+(4.2sin(324))
|
||||
"""
|
||||
|
||||
Loading…
Reference in New Issue
Block a user