タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

gaucheに関するfatrowのブックマーク (1)

  • Gauche:glob

    0.8.12までのsys-globはPOSIX.2のglob()関数を使っていたが、windows portでも同じ動作を保証したいのと、'**' とか '{a,b,c}' などの拡張機能も盛りこみたいので、Schemeで実装することにした。 で、globのパターンをregexpに変えてツリーに再帰的にマッチかけてけばいいとたかをくくっていたら、 案外面倒だったのでメモしておく。 面倒なのはパスコンポーネントの先頭に現れる '.' へのマッチだ。これは「パターンのパスコンポーネントの最初に現れる'.'」にしかマッチしない。つまり、 パターン '*' は空の文字列にもマッチ可能なんだけど、パターン '*.' は 名前 "." にはマッチしない。パターン中に現れる '.' がコンポーネントの先頭にないから。 なので普通は '*' -> #/.*/ '?' -> #/./ '.' -> #/\.

    Gauche:glob
  • 1