@@ -2044,39 +2044,41 @@ def preprocess_file(
2044
2044
# For "if" statements all blocks are excluded except the "else" block if present
2045
2045
# For "ifndef" statements all blocks excluding the first block are excluded
2046
2046
def eval_pp_if (text , defs : dict = None , pp_parse_intel : bool = False ):
2047
- def replace_ops (expr : str , pp_parse_intel : bool ):
2047
+ def replace_ops (expr : str ):
2048
2048
expr = expr .replace ("&&" , " and " )
2049
2049
expr = expr .replace ("||" , " or " )
2050
2050
expr = expr .replace ("!=" , " <> " )
2051
2051
expr = expr .replace ("!" , " not " )
2052
2052
expr = expr .replace (" <> " , " != " )
2053
2053
2054
- if pp_parse_intel :
2055
- expr = expr .replace ("/=" , " != " )
2056
- expr = expr .replace (".AND." , " and " )
2057
- expr = expr .replace (".LT." , " < " )
2058
- expr = expr .replace (".GT." , " > " )
2059
- expr = expr .replace (".EQ." , " == " )
2060
- expr = expr .replace (".LE." , " <= " )
2061
- expr = expr .replace (".GE." , " >= " )
2062
- expr = expr .replace (".NE." , " != " )
2063
- expr = expr .replace (".EQV." , " == " )
2064
- expr = expr .replace (".NEQV." , " != " )
2065
- expr = expr .replace (".NOT." , " not " )
2066
- expr = expr .replace (".OR." , " or " )
2067
- expr = expr .replace (".XOR." , " != " ) # admittedly a hack...
2068
- expr = expr .replace (".and." , " and " )
2069
- expr = expr .replace (".lt." , " < " )
2070
- expr = expr .replace (".gt." , " > " )
2071
- expr = expr .replace (".eq." , " == " )
2072
- expr = expr .replace (".le." , " <= " )
2073
- expr = expr .replace (".ge." , " >= " )
2074
- expr = expr .replace (".ne." , " != " )
2075
- expr = expr .replace (".eqv." , " == " )
2076
- expr = expr .replace (".neqv." , " != " )
2077
- expr = expr .replace (".not." , " not " )
2078
- expr = expr .replace (".or." , " or " )
2079
- expr = expr .replace (".xor." , " != " ) # admittedly a hack...
2054
+ return expr
2055
+
2056
+ def replace_intel_ops (expr : str ):
2057
+ expr = expr .replace ("/=" , " != " )
2058
+ expr = expr .replace (".AND." , " && " )
2059
+ expr = expr .replace (".LT." , " < " )
2060
+ expr = expr .replace (".GT." , " > " )
2061
+ expr = expr .replace (".EQ." , " == " )
2062
+ expr = expr .replace (".LE." , " <= " )
2063
+ expr = expr .replace (".GE." , " >= " )
2064
+ expr = expr .replace (".NE." , " != " )
2065
+ expr = expr .replace (".EQV." , " == " )
2066
+ expr = expr .replace (".NEQV." , " != " )
2067
+ expr = expr .replace (".NOT." , "!" )
2068
+ expr = expr .replace (".OR." , " || " )
2069
+ expr = expr .replace (".XOR." , " != " ) # admittedly a hack...
2070
+ expr = expr .replace (".and." , " && " )
2071
+ expr = expr .replace (".lt." , " < " )
2072
+ expr = expr .replace (".gt." , " > " )
2073
+ expr = expr .replace (".eq." , " == " )
2074
+ expr = expr .replace (".le." , " <= " )
2075
+ expr = expr .replace (".ge." , " >= " )
2076
+ expr = expr .replace (".ne." , " != " )
2077
+ expr = expr .replace (".eqv." , " == " )
2078
+ expr = expr .replace (".neqv." , " != " )
2079
+ expr = expr .replace (".not." , "!" )
2080
+ expr = expr .replace (".or." , " || " )
2081
+ expr = expr .replace (".xor." , " != " ) # admittedly a hack...
2080
2082
2081
2083
return expr
2082
2084
@@ -2110,10 +2112,15 @@ def replace_vars(line: str):
2110
2112
2111
2113
if defs is None :
2112
2114
defs = {}
2113
- out_line = replace_defined (text )
2115
+
2116
+ out_line = text
2117
+ if pp_parse_intel :
2118
+ out_line = replace_intel_ops (out_line )
2119
+
2120
+ out_line = replace_defined (out_line )
2114
2121
out_line = replace_vars (out_line )
2115
2122
try :
2116
- line_res = eval (replace_ops (out_line , pp_parse_intel ))
2123
+ line_res = eval (replace_ops (out_line ))
2117
2124
except :
2118
2125
return False
2119
2126
else :
0 commit comments