image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 2012年8月15日 | トップページ | 2012年10月13日 »

2012年9月1日

2012-09-01

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

次は文字列定数中の \ の扱いを処理する予定。

« 2012年8月15日 | トップページ | 2012年10月13日 »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク