uwsc を coffeescript 風の記述から生成する (その2)
coffeescript 風書式 -> uwsc コード生成で、
* 配列の宣言、 function 定義のパラメータでの配列宣言、
* 関数定義のパラメータの var 宣言, default 値
をサポートした。
See https://github.com/katoy/coffee-script-for-uwsc
例:
$ cat array_def.coffee
dim ary_1 = [1,2,3]
dim ary_2[3] = [1,2,3]
dim ary_3[3]
PRINT ary_2[i] for i in [0 ... Length(ary_3.length)]
ReSize(ary_1, Length(ary_1) * 2 )
dim ary_23[2][2]
dim matrix2[2][2] = [ [1, 2], [3, 4] ]
size = 3
dim matrix3[size][size] = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
PRINT matrix[i][j] for j in [0...size] for i in [0...size]
func = (x[]) ->
PRINT x[0]
func2 = (x[][]) ->
PRINT x[0][0]
$ ../bin/uwscscript -p array_def.coffee
// Generated by UwscScript 0.1.0
dim i, j, size
DIM ary_1 = [1, 2, 3]
DIM ary_2[3] = [1, 2, 3]
DIM ary_3[3]
For i = 0 To Length(ary_3.length) - 1
PRINT ary_2[i]
Next
ReSize(ary_1, Length(ary_1) * 2)
DIM ary_23[2][2]
DIM matrix2[2][2] = [[1, 2], [3, 4]]
size = 3
DIM matrix3[size][size] = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
For i = 0 To size - 1
For j = 0 To size - 1
PRINT matrix[i][j]
Next
Next
Procedure func(x[])
PRINT x[0]
Fend
Procedure func2(x[][])
PRINT x[0][0]
Fend
$ cat function_2.coffee
func_1 = (x, y, z) ->
PRINT x + y + z
func_1 = (x, var y, z = 1) ->
PRINT x + y
func_3 = (x[]) ->
PRINT x[0]
func_4 = (x[][]) ->
PRINT x[0][0]
$ ../bin/uwscscript -p function_2.coffee
// Generated by UwscScript 0.1.0
Procedure func_1(x, y, z)
PRINT x + y + z
Fend
Procedure func_1(x, var y, z = 1)
PRINT x + y
Fend
Procedure func_3(x[])
PRINT x[0]
Fend
Procedure func_4(x[][])
PRINT x[0][0]
Fend
次は文字列定数中の \ の扱いを処理する予定。
« uwsc を coffeescript 風の記述から生成する | トップページ | xslx を coffeescript で読み書きする »
この記事へのコメントは終了しました。
« uwsc を coffeescript 風の記述から生成する | トップページ | xslx を coffeescript で読み書きする »
コメント