ranger-compiler 3.0.4 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,44 +0,0 @@
1
-
2
-
3
- systemclass SQLSchemaBuilder {
4
- es6 Object
5
- }
6
- systemclass SQLSchemaTable {
7
- es6 Object
8
- }
9
- systemclass SQLDatabase {
10
- es6 Object
11
- }
12
- systemclass DBSchema {
13
- es6 Object
14
- }
15
- systemclass DBTable {
16
- es6 Object
17
- }
18
- systemclass DBInsertableRow {
19
- es6 Object
20
- }
21
- systemclass DBTableQuery {
22
- es6 Object
23
- }
24
- operator type:void es6 {
25
- fn schema:SQLSchemaBuilder (name:string version:int) (`lf.schema.create(`(e 1)`,`(e 2)`)`)
26
- fn create_table:SQLSchemaTable ( s:SQLSchemaBuilder name:string ) ( (e 1) `.createTable(`(e 2)`)`)
27
-
28
- fn add_int (t:SQLSchemaTable fieldName:string ) ( (e 1) `.addColumn(`(e 2)`, lf.Type.INTEGER)`)
29
- fn add_string (t:SQLSchemaTable fieldName:string ) ( (e 1) `.addColumn(`(e 2)`, lf.Type.STRING)`)
30
- fn add_datetime (t:SQLSchemaTable fieldName:string ) ( (e 1) `.addColumn(`(e 2)`, lf.Type.DATE_TIME)`)
31
- fn add_boolean (t:SQLSchemaTable fieldName:string ) ((e 1) `.addColumn(`(e 2)`, lf.Type.BOOLEAN)`)
32
- fn set_primary_key (t:SQLSchemaTable fieldName:string) ((e 1) `.addPrimaryKey([`(e 2)`])`)
33
- fn create_index (t:SQLSchemaTable indexName:string fields:[string]) ( (e 1) `.addIndex(`(e 2)`,`(e 3)`,false,lf.Order.DESC)`)
34
-
35
- fn connect@(async):SQLDatabase (b:SQLSchemaBuilder) ('await ' (e 1) '.connect()')
36
- fn getSchema:DBSchema (db:SQLDatabase) ( (e 1) '.getSchema()')
37
- fn getTable:DBTable (db:DBSchema name:string) ( (e 1) '.table(' (e 2) ')')
38
-
39
- fn addRow:DBInsertableRow (tbl:DBTable row:JSONDataObject) ( (e 1) '.createRow(' (e 2) ')')
40
- fn insert@(async):void (db:SQLDatabase t:DBTable rows:[DBInsertableRow]) ('await (' (e 1) '.insertOrReplace().into(' (e 2) ').values(' (e 3) ').exec())')
41
- ; fn query@(async):[JSONDataObject] (db:SQLDatabase t:DBTable id:int ) ('await (' (e 1) '.select().from(' (e 2) ').where(' (e 2) '.id.eq(' (e 3)')).exec())')
42
- fn select@(async):[JSONDataObject] (db:SQLDatabase t:DBTable id:int ) ('await (' (e 1) '.select().from(' (e 2) ').where(' (e 2) '.id.eq(' (e 3)')).exec())')
43
- }
44
-
@@ -1,9 +0,0 @@
1
-
2
- operators {
3
- service_url _:string ( name@(noeval) ) {
4
- templates {
5
- ranger ( "(service_url " (e 1) ")")
6
- * @macro(true) ( "\"http://10.0.2.2:1777/" (service_id 1) "\"")
7
- }
8
- }
9
- }
@@ -1,89 +0,0 @@
1
-
2
- ; https://developer.android.com/guide/topics/data/data-storage.html#filesInternal
3
-
4
-
5
- systemclass StorageOutputStream {
6
- java7 FileOutputStream ( (imp 'java.io.FileOutputStream'))
7
- }
8
- systemclass StorageInputStream {
9
- java7 FileInputStream ( (imp 'java.io.FileInputStream '))
10
- }
11
-
12
- operators {
13
-
14
- ; JavaScript localstorage functions using localforage
15
- localStorage _@(async):void (path:string value:string) {
16
- templates {
17
- es6 (`await (new Promise(resolve => { localforage.setItem(` (e 1) `, ` (e 2) `, resolve ) } ) )` )
18
- }
19
- }
20
-
21
- localStorage _@(optional async):string (path:string) {
22
- templates {
23
- es6 (`await (new Promise(resolve => { localforage.getItem(` (e 1) `, (err,value) => {
24
- if(err) resolve(null);
25
- resolve(value)
26
- }) } ))` )
27
- }
28
- }
29
-
30
- ; Android + UIContext functions
31
- file_exists _:boolean (ui:UIContext filename:string) {
32
- templates {
33
- java7 ( '__storageFileExist(' (e 1) '.getCtx(), ' (e 2) ')' (imp 'java.io.File')
34
- (create_polyfill `
35
- static boolean __storageFileExist(Context ctx, String fname){
36
- File file = ctx.getFileStreamPath(fname);
37
- return file.exists();
38
- }
39
- `)
40
-
41
- )
42
- }
43
- }
44
-
45
- open_private_output _:StorageOutputStream (ui:UIContext filename:string) {
46
- templates {
47
- java7 ( (e 1) '.getCtx().openFileOutput(' (e 2) ', Context.MODE_PRIVATE)')
48
- }
49
- }
50
- open_private_input _:StorageInputStream (ui:UIContext filename:string) {
51
- templates {
52
- java7 ( (e 1) '.getCtx().openFileInput(' (e 2) ')')
53
- }
54
- }
55
- read _:Bytes (stream:StorageInputStream) {
56
- templates {
57
- java7 ( '__readStream(' (e 1) ')' (imp 'java.io.BufferedInputStream') (imp 'java.io.FileNotFoundException')
58
-
59
- (create_polyfill `
60
- static byte[] __readStream(FileInputStream fis) {
61
- byte[] bytes = null;
62
- try {
63
- bytes = new byte[fis.available()];
64
- BufferedInputStream buf = new BufferedInputStream(fis);
65
- buf.read(bytes, 0, bytes.length);
66
- buf.close();
67
- } catch (FileNotFoundException e) {
68
- e.printStackTrace();
69
- } catch (IOException e) {
70
- e.printStackTrace();
71
- }
72
- return bytes;
73
- }
74
- `)
75
-
76
- )
77
- }
78
- }
79
- write _:void (stream:StorageOutputStream data:Bytes) {
80
- templates {
81
- java7 ( (e 1) '.write(' (e 2) ');')
82
- }
83
- }
84
- close _:void (stream:StorageOutputStream) {
85
- templates {
86
- java7 ( (e 1) '.close();')
87
- }
88
- }
89
- }
@@ -1,75 +0,0 @@
1
-
2
- ; Date functions
3
- ; https://cdnjs.cloudflare.com/ajax/libs/date-fns/1.29.0/date_fns.min.js
4
-
5
- systemclass SystemDate {
6
- es6 Date
7
- }
8
-
9
- operator type:void es6 {
10
-
11
- fn to_date:SystemDate ( value:int ) ('new Date(' (e 1) ')')
12
- fn to_date:SystemDate ( y:int m:int d:int) ('new Date(' (e 1) ', ' (e 2) ' - 1, ' (e 3) ')')
13
- fn to_string:string (d:SystemDate) ( (e 1) '.toString()')
14
- fn to_utc:int (d:SystemDate) ( (e 1) '.getTime()')
15
- fn yyyy:int (d:SystemDate) ( (e 1) '.getFullYear()')
16
- fn mm:int (d:SystemDate) ( '(' (e 1) '.getMonth() + 1)')
17
- fn dd:int (d:SystemDate) ( (e 1) '.getDate()')
18
-
19
- fn weekday:int (d:SystemDate) ( (e 1) '.getDay()')
20
-
21
- fn month:int (d:int) ('(new Date(' (e 1) ')).getMonth() + 1')
22
-
23
- fn day_step:int () ( '1000*60*60*24' )
24
- fn week_step:int () ( '1000*60*60*24*7' )
25
-
26
- fn monday:SystemDate (d:SystemDate) {
27
- def day (weekday d)
28
- if( day == 0 ) {
29
- return (add_days d -6 )
30
- }
31
- return (add_days d ( -1 * (day - 1)) )
32
- }
33
-
34
- fn tuesday:SystemDate (d:SystemDate) {
35
- return ( add_days (monday d) 1)
36
- }
37
-
38
- ; calculate the year and week from the date
39
- fn year_week:[int] (d:SystemDate) ('((d)=>{
40
- var d = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()))
41
- d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay()||7));
42
- var yearStart = new Date(Date.UTC(d.getUTCFullYear(),0,1));
43
- var weekNo = Math.ceil(( ( (d - yearStart) / 86400000) + 1)/7);
44
- return [d.getUTCFullYear(), weekNo];
45
- })('(e 1)') ')
46
-
47
- fn ms:int (d:SystemDate) ( (e 1) '.getTime()')
48
-
49
- fn clone:SystemDate (d:SystemDate) ( '(new Date(' (e 1) '.getTime())' )
50
- fn add_days:SystemDate ( d:SystemDate value:int ) ( '(()=>{ var _=(new Date(' (e 1) '.getTime())); _.setDate(' (e 1) '.getDate() + ' (e 2) ');return _;})()')
51
-
52
- fn to_ymd:string ( dd:SystemDate ) {
53
- return ( (yyyy dd) + "-" + (mm dd) + "-" + (dd dd))
54
- }
55
- }
56
-
57
- operator type:void all {
58
- fn ymd_to_date@(throws):SystemDate (ymd:string) {
59
- def parts (strsplit ymd '-')
60
- if( (size parts) < 3) {
61
- throw "Invalid date"
62
- }
63
- def yy 0
64
- def mm 0
65
- def dd 0
66
- try {
67
- yy = (unwrap ( to_int (at parts 0)))
68
- mm = (unwrap ( to_int (at parts 1)))
69
- dd = (unwrap ( to_int (at parts 2)))
70
- } {
71
- throw "Invalid date format"
72
- }
73
- return (to_date yy mm dd)
74
- }
75
- }
@@ -1,176 +0,0 @@
1
- ; operators to get time from JavaScript
2
- systemclass TimeIntervalID {
3
- es6 TimeInterval
4
- }
5
- systemclass TimeOutID {
6
- es6 number
7
- java7 Thread
8
- swift3 setTimeoutClass
9
- go '*r_go_timer'
10
- }
11
- operators {
12
- clearInterval cmdClearInterval:void ( i:TimeIntervalID) {
13
- templates {
14
- es6 ("clearInterval( " (e 1) ")")
15
- }
16
- }
17
- setInterval cmdInterval:TimeIntervalID (code:block ms:int) {
18
- templates {
19
- es6 ("setInterval( () => {" (block 1 ) "} , " (e 2) ")")
20
- }
21
- }
22
- clearTimeout cmdClearInterval:void ( i:TimeOutID) {
23
- templates {
24
- es6 ("clearTimeout(" (e 1) ")")
25
- java7 ( (e 1) ".interrupt();" nl)
26
- swift3 ( (e 1) '.stop()' nl)
27
- cpp ()
28
- go ( (e 1) ".is_valid = false;" nl)
29
- }
30
- }
31
-
32
- setTimeout cmdInterval:TimeOutID (ms:int code:block) {
33
- templates {
34
- go (
35
- "r_setTimeout( " (e 1) ", func() {" nl I (block 2) i nl " } )"
36
- (imp "time")
37
-
38
- (create_polyfill '
39
- type r_go_timer struct {
40
- is_valid bool
41
- }
42
- func r_setTimeout( ms int64, cb func() () ) *r_go_timer {
43
- o := new(r_go_timer)
44
- o.is_valid = true
45
- time.AfterFunc( time.Duration(ms)*time.Millisecond, func() () {
46
- if o.is_valid {
47
- cb()
48
- }
49
- })
50
- return o
51
- }
52
- ') )
53
- cpp ( 'setTimeout(' (e 1) ', [&](){' nl I (block 2) i nl '});'
54
- (imp '<future>')
55
- (imp '<chrono>')
56
- (imp '<thread>')
57
- (create_polyfill `
58
-
59
- void setTimeout(int milliseconds,std::function<void()> func)
60
- {
61
- std::async(std::launch::async,[=]()
62
- {
63
- std::this_thread::sleep_for(std::chrono::milliseconds(milliseconds));
64
- func();
65
- });
66
- };
67
- `)
68
-
69
- )
70
-
71
- test1_swift3 ( 'setTimeoutClass(ms: ' (e 1) ', callback: { () -> Void in ' nl I (block 2) i nl '})'
72
- (imp "Foundation")
73
- (create_polyfill '
74
- class setTimeoutClass {
75
- var cb : (() -> Void)?
76
- init( ms:Int, callback : @escaping (() -> Void) ) {
77
- self.cb = callback
78
- self.cb!()
79
- }
80
- func call() {
81
- self.cb!()
82
- }
83
- func stop() {
84
- }
85
- }
86
- ' )
87
-
88
- )
89
-
90
-
91
- swift3 ( 'setTimeoutClass(ms: ' (e 1) ', callback: { () -> Void in ' nl I (block 2) i nl '})'
92
- (imp "Foundation")
93
- (create_polyfill '
94
- class setTimeoutClass {
95
- var timer = Timer()
96
- var cb : (() -> Void)?
97
- init( ms:Int, callback : @escaping (() -> Void) ) {
98
- self.timer = Timer.scheduledTimer(timeInterval:(Double(ms)*0.001), target: self, selector: #selector(self.callMe), userInfo: nil, repeats: false)
99
- self.cb = callback
100
- }
101
- @objc func callMe(t: Timer) {
102
- self.cb!()
103
- }
104
- func stop() {
105
- self.timer.invalidate();
106
- }
107
- }
108
- ' )
109
-
110
- )
111
-
112
- es6 ("setTimeout( () => {" (block 2 ) "} , " (e 1) ")") ;"
113
- rust (
114
- "std::thread::spawn(move || {" nl I
115
- "std::thread::sleep(std::time::Duration::from_millis(" (e 1) " as u64));" nl
116
- (block 2)
117
- i nl "});" nl
118
- )
119
- java7 (
120
- "__startThread("
121
- "new Thread() {" nl I
122
- "@Override" nl
123
- "public void run() {" nl I
124
- "try {" nl I
125
- "Thread.sleep( (long) ( " (e 1) "));" nl
126
- (block 2)
127
- nl i
128
- "} catch (Exception e) {" nl I
129
- "System.err.println(e);" nl i
130
- "}" nl i
131
- "}" nl i
132
- "}" nl
133
- ");"
134
- (create_polyfill
135
- "static Thread __startThread( Thread t) {
136
- t.start();
137
- return t;
138
- }"
139
- )
140
- )
141
-
142
- java7uisave (
143
- "new Thread() {" nl I
144
- "@Override" nl
145
- "public void run() {" nl I
146
- "try {" nl I
147
- "Thread.sleep( (long) (1000 *" (e 1) "));" nl
148
- "getActivity().runOnUiThread(new Runnable(){" nl
149
- "@Override" nl
150
- "public void run() {" nl I
151
- (block 2)
152
- nl i "}"
153
- nl i
154
- "});"
155
- nl i
156
- "} catch (Exception e) {" nl I
157
- "System.err.println(e);" nl i
158
- "}" nl i
159
- "}" nl i
160
- "}.start();" nl
161
-
162
- )
163
-
164
- }
165
- }
166
- setTimeout cmdInterval:TimeOutID (code:block ms:int) {
167
- templates {
168
- es6 ("setTimeout( () => {" (block 1 ) "} , " (e 2) ")")
169
- }
170
- }
171
- time_as_string cmdTime:string () {
172
- templates {
173
- es6 ("(new Date()).toString()")
174
- }
175
- }
176
- }
@@ -1,14 +0,0 @@
1
- systemclass RUint32Array {
2
- es6 Uint32Array
3
- }
4
-
5
- systemclass Uint32 {
6
- es6 Uint32
7
- }
8
-
9
- operator type:void es6 {
10
- fn create_Uint32Array:RUint32Array (size:int) ('new Uint32Array(' (e 1) ')')
11
- fn at:Uint32 (buff:RUint32Array index:int) ( (e 1) '[' (e 2) ']')
12
- fn to_int:int (value:Uint32) ( (e 1) )
13
- fn to_hex_string:string (value:Uint32) ( (e 1) '.toString(16)' )
14
- }