c関数の宣言を解析しようとしています。文字列からトークンの配列を取得したい。だから私は分割を使用します:
$function = "int func1( int * , const float, const char[])"
print split(/(\(|\)|\*|[|]|,|\ )/, $function);
これの配列を返します
["int" "func1", "(", "int", "*", ",", "const", "float", ",", "const", "char[]", ")"]
これは基本的に正しいですが、スペースを削除する必要はありません。だから私はこのようなものを期待していました
["int " "func1", "( ", "int ", "* ", ", ", "const ", "float", ", ", "const ", "char[]", ")"]
オプションはありますか?(私自身の字句パーサーを書く代わりに)