学校の課題でRubyを使ってインタプリタ形式のプログラミング言語をつくっています。
そこで変数宣言を正規表現でマッチさせたいのですが、
宣言に用いた文字列が予約語でもなく、数値でもなく、演算子などの記号でもなく、既に定義された変数でもない場合、という条件にマッチする正規表現がうまく書けません。
上手い正規表現はありますでしょうか?
現在、予約語と演算子はハッシュオブジェクトで管理して、変数は定義されたものは変数用のハッシュオブジェクトで管理しています。なので、予約語と演算子にマッチする正規表現は/#{keywords.keys.map{|t| Regexp.escape(t)}.join('|')}/
といった形で記述しています。
この正規表現をうまく利用できると有り難いです。
よろしく御願いします。
言語仕様に関しては、
var hoge = 1
といったように[宣言の予約語, 変数名, 代入演算子, リテラル]
といった並びになります。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/20 09:36
2017/01/20 09:41