現在、8つのキーワード(大文字と小文字を区別しない)と4つの算術演算子を持つ基本インタプリタを作成する課題があります。複数のarraylistsまたは文字列トークン付き配列を使用してJavaでインタプリタを書く
# (signals start of a comment line)
LET
INTEGER
STRING
PRINT
END
とにかく私は現在解析するテキストの行をトークン化しようとしている:この言語でのプログラムは、(実際にはBASICの構文に似ています)、このようになります。私はすでに、すべての行のテキストをArrayListに解析し、文字列をトークン化しました。私の現在の問題は、StringTokenizerがすべての文字列を事前にトークン化していることです(私は区切り文字として空白を使用しています)。私の必要とするのは、キーワードの検索です。これは常にコード行の最初の部分です特定の問題がそれを望ましくないものにしてしまいます。私はString.split()を使用することも多くの助けになるとは思わない。
インタプリタに最初のトークンを見つけさせ、そこからHashMapを介して適切なクラスに移動することでした(私の以前のインタプリタのswitch文の使用に関する私の以前の質問: Switch or if statements in writing an interpreter in java;他のメンバーがMapを使ってキーワードトークンを削除して実行することを提案しました。変数を保持するための第2の一時的なArrayListまたは配列を設定するのは良い考えですか?私はそれが過度に複雑であることを望まない、または必要としない。
ご提案いただきありがとうございます。
あなたの質問は明確ではありません。 –
@JBNizetメソッドの引数を解析するか、すべての引数を解析して、スクリプトの行を保持しているものとは別のArrayListに配置するかどうかを尋ねていました。 – Luinithil