, , "-"... , . : , .
, , ++ .
. , .
, ; ++ , . , AST-AST, . , ++, , .
DMS Software Reengineering Toolkit ++ (11) front end ( ) ++ . AFAIK, , . , . DMS , , , :
rule fix_value1():expression->expression
"value1()" -> "true";
rule fix_value2():expression->expression
"value2()" -> "false";
rule fix_value3():expression->expression
"value3()" -> "4";
rule simplify_boolean_and_true(r:relation):condition->condition
"r && true" -> "r".
rule simplify_boolean_or_ture(r:relation):condition->condition
"r || true" -> "true".
rule simplify_boolean_and_false(r:relation):condition->condition
"r && false" -> "false".
...
rule simplify_boolean_not_true(r:relation):condition->condition
"!true" -> "false".
...
rule simplify_if_then_false(s:statement): statement->statement
" if (false) \s" -> ";";
rule simplify_if_then_true(s:statement): statement->statement
" if (true) \s" -> "\s";
rule simplify_if_then_else_false(s1:statement, s2:statement): statement->statement
" if (false) \s1 else \s2" -> "\s2";
rule simplify_if_then_else_true(s1:statement, s2: statement): statement->statement
" if (true) \s1 else \s2" -> "\s2";
( "fold" ) switch , . , DMS , . DMS.
, DMS " " ; , . AST, , . , ( ", " false && x "?); , && || DMS ++ , .
, , - ( , ) . , ( " " ). , , . , ; , DMS ++ , ; . ( DMS C ).
(EDIT February 2015: ++ 14, /).
1.5M SLOC C ++ IBM Tivoli ; : -}