2017-02-19 4 views
2

私はRubyのいくつかのルールに基づいて文字列をトークン化する必要があります。Rubyで文字列をトークン化しますか?

基本的に、ファイルを変数名、キーワード、整数、または操作に適合するセクションにグループ化する必要があります。

したがって、例えば、ファイル:

X:= 5;場合は、次に、X> 5 X:= 3; else x:= 6;私は本当にこの文字列をそのように解析する方法を理解していない

variable name (x) 
assignment operator (:=) 
integer (5) 
keyword (if) 
keyword (;) 
variable name (x) 
relation operator (>) 
integer (5) 
keyword (then) 
variable name (x) 
assignment operator (:=) 
integer (3) 
keyword (;) 
keyword (else) 
variable name (x) 
assignment operator (:=) 
integer (6) 
keyword (;) 
keyword (end) 

:最後

は、トークン化になります。誰かが私を正しい方向に向けることができますか?

文字列をトークン化する方法を知ったら、それを使って実際のトークンを作成して解析することができます。しかし、まず文字列を消化する方法を理解する必要があります。

ありがとうございます!

答えて

1

まず、すべての既知のキーワードと演算子を検索します。それらが識別されると、変数と整数だけが残るはずです。

識別子を整数に変換するかどうかは、その識別子を整数に変換することで判断できます。 !!Integer(identifier) rescue false

これがfalseを返す場合は、変数であるとみなす必要があります。

関連する問題