コード例 #1
0
ファイル: optimize.py プロジェクト: Johan-Mi/ScratchCompiler
def _operator_or(node):
    _basic_optimize(node, "OPERAND1", "OPERAND2")
    if isinstance(node["OPERAND1"], dict) \
    or isinstance(node["OPERAND2"], dict):
        return node
    return "true" \
            if to_bool(node["OPERAND1"]) or to_bool(node["OPERAND2"]) \
            else "false"
コード例 #2
0
ファイル: optimize.py プロジェクト: Johan-Mi/ScratchCompiler
def _control_repeat_until(node):
    _basic_optimize(node, "CONDITION", "body")
    if isinstance(node["CONDITION"], dict):
        return node
    return None if to_bool(node["CONDITION"]) \
            else {
                "type": "control_forever",
                "body": node["body"]}
コード例 #3
0
ファイル: optimize.py プロジェクト: Johan-Mi/ScratchCompiler
def _control_while(node):
    _basic_optimize(node, "CONDITION", "body")
    if isinstance(node["CONDITION"], dict):
        return node
    return {
        "type": "control_forever",
        "body": node["body"]
    } if to_bool(node["CONDITION"]) else None
コード例 #4
0
ファイル: optimize.py プロジェクト: Johan-Mi/ScratchCompiler
def _control_if(node):
    _basic_optimize(node, "CONDITION", "true_branch")
    if isinstance(node["CONDITION"], dict):
        return node
    return node["true_branch"] if to_bool(node["CONDITION"]) else None
コード例 #5
0
ファイル: optimize.py プロジェクト: Johan-Mi/ScratchCompiler
def _operator_not(node):
    _basic_optimize(node, "OPERAND")
    if isinstance(node["OPERAND1"], dict):
        return node
    return "false" if to_bool(node["OPERAND"]) else "true"