mirror of
https://github.com/HyperDbg/HyperDbg.git
synced 2026-07-20 06:24:42 +00:00
103 lines
No EOL
1.1 KiB
Text
103 lines
No EOL
1.1 KiB
Text
# OneOpFunc1 input is a number and returns a number.
|
|
.OneOpFunc1->poi db dd dw dq neg hi low not
|
|
|
|
S->BE
|
|
|
|
BE->B1
|
|
|
|
B1->B2 B1'
|
|
B1'->&& B2 B1' @AND
|
|
B1'->eps
|
|
|
|
B2->B3 B2'
|
|
B2'->|| B3 B2' @OR
|
|
B2'->eps
|
|
|
|
|
|
|
|
B3->CMP
|
|
B3->EXP
|
|
|
|
|
|
CMP->EXP > EXP @GT
|
|
CMP->EXP < EXP @LT
|
|
CMP->EXP >= EXP @EGT
|
|
CMP->EXP <= EXP @ELT
|
|
CMP->EXP == EXP @EQUAL
|
|
CMP->EXP != EXP @NEQ
|
|
|
|
CMP->( CMP )
|
|
|
|
EXP->E1 E0'
|
|
E0'->| E1 E0' @OR
|
|
E0'->eps
|
|
|
|
|
|
E1->E2 E1'
|
|
E1'->^ E2 E1' @XOR
|
|
E1'->eps
|
|
|
|
E2->E3 E2'
|
|
E2'->& E3 E2' @AND
|
|
E2'->eps
|
|
|
|
E3->E4 E3'
|
|
E3'->>> E4 E3' @ASR
|
|
E3'->eps
|
|
|
|
E4->E5 E4'
|
|
E4'-><< E5 E4' @ASL
|
|
E4'->eps
|
|
|
|
E5->E6 E5'
|
|
E5'->+ E6 E5' @ADD
|
|
E5'->eps
|
|
|
|
E6->E7 E6'
|
|
E6'->- E7 E6' @SUB
|
|
E6'->eps
|
|
|
|
E7->E8 E7'
|
|
E7'->* E8 E7' @MUL
|
|
E7'->eps
|
|
|
|
E8->E9 E8'
|
|
E8'->/ E9 E8' @DIV
|
|
E8'->eps
|
|
|
|
|
|
E9->E10 E9'
|
|
E9'->% E10 E9' @MOD
|
|
E9'->eps
|
|
|
|
|
|
|
|
|
|
E10->E12
|
|
|
|
|
|
|
|
E12->.OneOpFunc1 ( EXP ) @.OneOpFunc1
|
|
E12->( EXP )
|
|
|
|
|
|
# Types must have '_' at the first
|
|
E12->_register @PUSH
|
|
E12->_global_id @PUSH
|
|
E12->_local_id @PUSH
|
|
|
|
|
|
# numbers
|
|
E12->_hex @PUSH
|
|
E12->_decimal @PUSH
|
|
E12->_octal @PUSH
|
|
E12->_binary @PUSH
|
|
|
|
|
|
E12->_pseudo_register @PUSH
|
|
|
|
E12->- E12 @NEG
|
|
E12->+ E12
|
|
E12->~ E12 @NEG
|
|
|
|
E13->eps |