GlueLang

Sat May 5 09:10:32 JST 2018 (modified: Mon Apr 12 21:47:13 JST 2021)
views: 3027, keywords:

  このエントリーをはてなブックマークに追加 

GlueLangは、スクリプティングに特化したシェルです。 いまは開発をやめてますが、突っつかれたら再開します。→突っつかれましたので進めます。

主な特徴(バージョン0.2.0)

たぶんピンと来ない人が多いと思われますが・・・

中間ファイルを変数のように扱える

#!/usr/local/bin/glue

   import PATH            # PATHの下にあるコマンドを有効に

   file nums = seq '1' '100'
   file buzz = sed '5~5s/.*/Buzz/' nums

   sed '3~3s/[0-9]*/Fizz/' buzz

   # numsもbuzzも自動で消去される

エラーを起こした場所が分かりやすい

次のようにわざとエラーを起こすコードを実行すると・・・

#!/usr/local/bin/glue

   import PATH

   file nums = seq '1' '100'
   file buzz = se '5~5s/.*/Buzz/' nums   # sedをseに変更

   sed '3~3s/[0-9]*/Fizz/' buzz

   # numsもbuzzも自動で消去される

次のようにエラーの起きた位置を示してくれます。

$ ./fizzbuzz.glue
   Parse error at line 6, char 13
       line6: file buzz = se '5~5s/.*/Buzz/' nums
                          ^

       Command se not exist
       process_level 0
       exit_status 2
       pid 25881
   ERROR: 2

パイプの記号が>>=なので目立つ

  • bashのコード: hoge.bash
#!/bin/bash
   echo abc | rev | grep -o .
  • glueのコード
#!/usr/local/bin/glue

   import PATH
   echo 'abc' >>= rev >>= grep '-o' '.'
  • 実行結果
$ ./hoge.bash
   c
   b
   a
   $ ./hoge.glue
   c
   b
   a


やり散らかし一覧

記事いろいろ




このサイトではGoogle Analyticsやその他ソーシャルボタンのためにCookieを使用しています。もし同意いただけない場合はブラウザでクッキーを無効にして閲覧をお願いします。This site uses cookies for Google AdSense and some social buttons. If you cannot accept our use of cookies, please disable cookies on your browser.