0

私は言語を作っています、そして人が変数にアクセスしたいときはいつでも、それは$記号であります。ただし、すべての関数でifが必要であり、最初の文字が$であるかどうかを確認し、パラメーターが渡されるたびに、すべてのパラメーターに対してこれを実行する必要があります。混沌とします。ifをネストしたくないのですが、関数を簡単に適用してアクセスできるようにしたいと思います。説明するのはちょっと難しいですが、説明するためにいくつかのコードを使用します。

def varcmd(cmd, variables):
    if cmd.__len__() < 4:
        print "Too little arguments! str <var> = <string>"
    else:
        if cmd[2] == "=":
            if cmd[3][:1] == "$":
                variables[cmd[1]] = variables[cmd[3][1:]]
            else:
                variables[cmd[1]] = cmd[3]
        else:
            print "Incorrect syntax! str <var> = <string>"

この関数に追加し続けると、ifは指数関数的に増加し、実質的にすべての関数が変数を取ることができるため、すべての関数に大量のifが含まれるようになります。基本的に、私はこのようなものが欲しいです:

def varcmd(cmd, variables):
    if cmd.__len__() < 4:
        print "Too little arguments! str <var> = <string>"
    else:
        if cmd[2] == "=":
            variables[cmd[1]] = auto_convert_if_var.cmd[3][1:]
        else:
            print "Incorrect syntax! str <var> = <string>"
4

1 に答える 1

6

パーサーの構築が必要になるほどニーズが複雑になっているように見えます。

于 2012-06-01T02:25:44.080 に答える