Skip to content
Silica edited this page May 15, 2012 · 1 revision

#Tokenizer (トークナイザ)

##コメント ソースコード中にコメントを記述するには
//から行末まで
または /* から */ までがコメントとして読み飛ばされる

また#!でも事実上1行コメントとして機能する

##トークナイザ指令 #から始まる識別子はトークナイザへの指令となる
行の途中であっても構わない
list = (#include "list.csv"); ###include #include "file.psl"
ファイルがそこに挿入されているものとして読み込む

###define #define identifier ...
識別子を別のトークン(群)に置き換える
自動的に行末までを見る
複数行に渡る置き換えを行うことは出来ない

トークン単位での変換になる為

#define PLUS +
a PLUS= b;

はa += b;ではなくa + = b ;となり不正な構文となる.

###undef #undef identifier
identifierに対するdefineを未定義にする ###ifdef #ifdef identifier
identifierがdefineされていれば(置き換え対象は空でも良い)#elseか#endifまでをソースとして読み込む ###ifndef #ifndef identifier
identifierがdefineされていなければ#elseか#endifまでをソースとして読み込む ###else 事前のifdefかifndefが読み込まれた場合は#endifまでを読み飛ばす
事前のifdefかifndefが読み飛ばされた場合は#endifまでをソースとして読み込む ###endif ネスト可能