Boolean expression grammar
Boolean Expression Grammar of Script Engine
HyperDbg operates based on the following boolean expression grammar.

Language Grammar

1
# OneOpFunc1 input is a number and returns a number.
2
.OneOpFunc1->poi db dd dw dq neg hi low not
3
4
S->BE
5
6
BE->B1
7
8
B1->B2 B1'
9
B1'->&& B2 B1' @AND
10
B1'->eps
11
12
B2->B3 B2'
13
B2'->|| B3 B2' @OR
14
B2'->eps
15
16
B3->CMP
17
B3->EXP
18
19
CMP->EXP > EXP @GT
20
CMP->EXP < EXP @LT
21
CMP->EXP >= EXP @EGT
22
CMP->EXP <= EXP @ELT
23
CMP->EXP == EXP @EQ
24
CMP->EXP != EXP @NEQ
25
26
CMP->( CMP )
27
28
EXP->E1 E0'
29
E0'->| E1 E0' @OR
30
E0'->eps
31
32
E1->E2 E1'
33
E1'->^ E2 E1' @XOR
34
E1'->eps
35
36
E2->E3 E2'
37
E2'->& E3 E2' @AND
38
E2'->eps
39
40
E3->E4 E3'
41
E3'->>> E4 E3' @ASR
42
E3'->eps
43
44
E4->E5 E4'
45
E4'-><< E5 E4' @ASL
46
E4'->eps
47
48
E5->E6 E5'
49
E5'->+ E6 E5' @ADD
50
E5'->eps
51
52
E6->E7 E6'
53
E6'->- E7 E6' @SUB
54
E6'->eps
55
56
E7->E8 E7'
57
E7'->* E8 E7' @MUL
58
E7'->eps
59
60
E8->E9 E8'
61
E8'->/ E9 E8' @DIV
62
E8'->eps
63
64
65
E9->E10 E9'
66
E9'->% E10 E9' @MOD
67
E9'->eps
68
69
E10->E12
70
71
E12->.OneOpFunc1 ( EXP ) @.OneOpFunc1
72
E12->( EXP )
73
74
75
# Types must have '_' at the first
76
E12->_register @PUSH
77
E12->_id @PUSH
78
79
# numbers
80
E12->_hex @PUSH
81
E12->_decimal @PUSH
82
E12->_octal @PUSH
83
E12->_binary @PUSH
84
85
E12->_pseudo_register @PUSH
86
87
E12->- E12 @NEG
88
E12->+ E12
89
E12->~ E12 @NEG
90
91
E13->eps
Copied!
Last modified 6mo ago
Copy link
Edit on GitHub