filipinomemes 1.0.3 → 1.0.4

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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +28 -556
  3. data/bin/filipinomemes +6 -1
  4. data/lib/filipinomemes.rb +2 -1
  5. data/lib/filipinomemes/compiler.rb +4 -3
  6. data/lib/filipinomemes/core_ext.rb +1 -0
  7. data/lib/filipinomemes/core_ext/array.rb +2 -0
  8. data/lib/filipinomemes/core_ext/class.rb +2 -0
  9. data/lib/filipinomemes/core_ext/enumerator.rb +2 -0
  10. data/lib/filipinomemes/core_ext/integer.rb +2 -0
  11. data/lib/filipinomemes/core_ext/kernel.rb +2 -0
  12. data/lib/filipinomemes/core_ext/module.rb +2 -0
  13. data/lib/filipinomemes/core_ext/range.rb +2 -0
  14. data/lib/filipinomemes/core_ext/string.rb +2 -0
  15. data/lib/filipinomemes/ruby_parser_patches.rb +14 -0
  16. data/lib/filipinomemes/version.rb +2 -1
  17. data/sample_programs/array.bt +4 -0
  18. data/sample_programs/conditions.bt +8 -0
  19. data/sample_programs/group.bt +13 -0
  20. data/sample_programs/helloworld.bt +3 -0
  21. data/sample_programs/magbibigay.bt +13 -13
  22. data/sample_programs/module.bt +10 -0
  23. data/sample_programs/{o_ang.bt → or.bt} +0 -0
  24. data/spec/filipinomemes/compiler_spec.rb +11 -4
  25. data/spec/spec_helper.rb +1 -3
  26. metadata +8 -25
  27. data/sample_programs/agapan.bt +0 -5
  28. data/sample_programs/alyas.bt +0 -9
  29. data/sample_programs/batotris.bt +0 -286
  30. data/sample_programs/bilang.bt +0 -10
  31. data/sample_programs/dapat.bt +0 -9
  32. data/sample_programs/habang.bt +0 -7
  33. data/sample_programs/ihinto.bt +0 -8
  34. data/sample_programs/kontrol-sa-pagiikot.bt +0 -45
  35. data/sample_programs/kumusta_mundo.bt +0 -5
  36. data/sample_programs/maliban_na.bt +0 -12
  37. data/sample_programs/modyul.bt +0 -20
  38. data/sample_programs/nakatukoy.bt +0 -13
  39. data/sample_programs/ngunit_kapag.bt +0 -8
  40. data/sample_programs/pamamaraan-sa-pagkakamali.bt +0 -11
  41. data/sample_programs/pangalan.bt +0 -10
  42. data/sample_programs/panguri.bt +0 -13
  43. data/sample_programs/panuntunan.bt +0 -23
  44. data/sample_programs/para_sa.bt +0 -4
  45. data/sample_programs/pibonasyi.bt +0 -59
  46. data/sample_programs/siguraduhin.bt +0 -8
  47. data/sample_programs/tanggalin.bt +0 -23
  48. data/sample_programs/timebomb.bt +0 -36
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f57ecdde6fa439dcf71c74625c11358ca8d43703
4
- data.tar.gz: f8b71ec7b8c70322c6e8b1388177729116c11fb8
3
+ metadata.gz: e152e51ad47b423f7ef15223239433b83a4f4548
4
+ data.tar.gz: 6e3dc79167333d5c974486008bc342b20f7d3b58
5
5
  SHA512:
6
- metadata.gz: bbc9543b5a6d0d4c2ed33e1d29f7daefb46d123f98127e18a1b602c95e468dd462364e5e9149a081b5b2418956b048afb28a39cb1f23df7de36258c907436120
7
- data.tar.gz: 8561154b1211a8f344f0af884a963dadbfcfb8023eca65a9fc5333e1e0e7694499130fad59ea8fc1664062c18ed4897b3319c6177e0e913bb71dbc659eddb913
6
+ metadata.gz: c0e5b9f4c14bb8cc3ee7c2463452170913f92b5f54596aee691dc39f35c92708830aca983584876c2a41830dbda3b0bfe2db17a2fbe1abcaf0e390f4e86f514f
7
+ data.tar.gz: 4614af368e245cb6bb33f18e98d33128af16178ef1ed2d25ec7cc48ac916e73e0f400b1bfdf158a77ba2c7e624f64e3fa9b35a7d014aecd5732832b181c2330e
data/README.md CHANGED
@@ -8,579 +8,51 @@ Filipinomemes is a programming language that uses filipino memes as it's syntaxe
8
8
  You need to download and install Ruby (version 2.4 or up).
9
9
  after installing, run this code.
10
10
 
11
- gem install filipinomemes
11
+ gem install filipinomemes
12
12
 
13
13
  ## Why filipinomemes?
14
14
 
15
- The 'filipinomemes' is based on Ruby Programming Language that uses filipinomemes as its syntaxes.
15
+ The 'filipinomemes' is based on Ruby Programming Language. It uses filipinomemes as its syntaxes.
16
16
 
17
17
  ## Creating your first program using filipinomemes
18
18
 
19
19
  Copy the following code to a .txt file then save it as helloworld.bt
20
20
 
21
- ip 1 > 0
22
- panomonasabe "Kumusta mundo!"
23
- ginagawa_mue
24
- panomonasabe "Mayroong sira"
25
- finish_na
21
+ wala_na
22
+ panomonasabe "Kumusta mundo!"
23
+ finish_na
26
24
 
27
25
  and run this program using:
28
26
 
29
- filipinomemes helloworld.bt
27
+ filipinomemes helloworld.bt
30
28
 
31
- ## Sintaks
29
+ ### String Functions
30
+ 'Hello World'.sikstinayn # => 'dlroW olleH'
31
+ 'Zephyrum'.longgadog # => 8
32
32
 
33
- ### Pagsusulat
33
+ ### Boolean Expressions
34
34
 
35
- "Ito ay mga serye ng mga sulat sa wikang Filipino"
36
- <<-FINISH_NA
37
- mga salita
38
- na nahahati
39
- sa ilang mga hilera
40
- FINISH_NA
35
+ israel //true
36
+ isrong //false
37
+ isnot //not
41
38
 
42
- ### Dinikit na mga pamamaraan
43
- 'magandang araw'.sikstinayn # => 'wara gnadnagam'
44
- 'Pangungusap'.longgadog # => 11
39
+ ### Conditions
45
40
 
46
- ### Boolean Expression
41
+ agik //if
42
+ agik_ginagawa_mue //elseif
43
+ ginagawa_mue //else
47
44
 
48
- israel
49
- isrong
50
- isnot
45
+ Conditions Usage(Sample Program):
51
46
 
52
- ### Condition
47
+ your_name = "Zephyrum"
48
+ agik your_name == "Jan Paul"
49
+ panomonasabe "Hi Jan Paul!"
50
+ agik_ginagawa_mue your_name == "Zephyrum"
51
+ panomonasabe "Hello Zephyrum!"
52
+ ginagawa_mue
53
+ panomonasabe "Sorry I don't know your name. :("
54
+ finish_na
53
55
 
54
- Paggamit ng kondisyon.
56
+ ## License
55
57
 
56
- agik halaga > 100 den
57
- "ayos lang"
58
- agik_ginagawa_mue halaga > 0 den
59
- "ok lang"
60
- ginagawa_mue
61
- "wala lang"
62
- finish_na
63
-
64
- hakdog halaga
65
- wen 5 den "lima"
66
- wen 4 den "apat"
67
- ginagawa_mue "wala"
68
- finish_na
69
-
70
- ### Pamamaraan sa pagkakamali
71
-
72
- bilang_ng_pagkakamali = 0
73
- glhf
74
- # mag komento kung hindi sigurado
75
- 1 / 0
76
- reskyu => pagkakamali
77
- bilang_ng_pagkakamali += 1
78
- neba_gibap ip bilang_ng_pagkakamali < 3
79
- rays "malubhang pagkakamali"
80
- may_raket
81
- panomonasabe "den na"
82
- finish_na
83
-
84
- ### ge_talon
85
-
86
- ge_talon panomonasabeAngPangalan(pangalan = wala)
87
- ip pangalan != wala
88
- panomonasabe "Magandang araw sa iyo #{pangalan}!"
89
- ginagawa_mue
90
- panomonasabe "Magandang araw!"
91
- finish_na
92
- finish_na
93
-
94
- panomonasabeAngPangalan "Maria" # => "Magandang araw sa iyo Maria!"
95
- panomonasabeAngPangalan # => "Magandang araw!"
96
-
97
- ## Paggamit ng mga ekspresyon ng mga salita sa program
98
-
99
- ### finish_na
100
-
101
- Maari kang gumamit sa alin sa mga sumusunod sa pagtatapos ng program
102
-
103
- finish_na
104
- gg
105
- finish_na
106
-
107
- Halimbawa
108
-
109
- bilang_ng_saging = 2
110
- ip bilang_ng_saging > 1
111
- panomonasabe "Mayroon akong #{bilang_ng_saging} saging! 🍌"
112
- ginagawa_mue
113
- panomonasabe "Wala na akong saging! 😐"
114
- finish_na
115
-
116
- ### ginagawa_mue
117
-
118
- Kung ang ekspresyon ay hindi nasunod maaring gumamit sa alin sa mga sumusunod
119
-
120
- ginagawa_mue
121
- els
122
-
123
- Halimbawa
124
-
125
- pangalan_mo = "Maliksi"
126
- agik pangalan_mo == "Maliksi"
127
- panomonasabe "Ikaw ay si #{pangalan_mo}!"
128
- ginagawa_mue
129
- panomonasabe "Magandang araw sa iyo #{pangalan_mo}!"
130
- finish_na
131
-
132
- ### hakdog
133
-
134
- Kung mayroon kang ekspresyon na madaming resulta gawa ng mga iba't ibang kondisyon, maari kang gumamit ng mga sumusunod
135
-
136
- hakdog
137
- kays
138
-
139
- Halimbawa
140
-
141
- pangalan_mo = "Mabait"
142
-
143
- hakdog pangalan_mo
144
- ay "Maliksi"
145
- panomonasabe "Ikaw ay si Maliksi!"
146
- ay "Matipuno"
147
- panomonasabe "Ikaw ay si Matipuno!"
148
- ay "Mabait"
149
- panomonasabe "Ikaw ay si Mabait!"
150
- ginagawa_mue
151
- panomonasabe "Magandang araw sa iyo!"
152
- finish_na
153
-
154
- ### may_raket
155
-
156
- Kung mayroon kang ekspresyon na gusto mong masunod kahit ano pa ang kahihinatnan nito, gumamit ng mga sumusunod
157
-
158
- may_raket
159
- ensyur
160
-
161
- Halimbawa
162
-
163
- wala_na
164
- rays "May sira!"
165
- reskyu
166
- panomonasabe "Ipagpatuloy..."
167
- rays "May nasira na na-reskyu"
168
- may_raket
169
- panomonasabe "den na"
170
- finish_na
171
-
172
- ### mojul
173
-
174
- Ang mojul ay ang lalagyanan ng mga kabilang na klase sa iyong program
175
-
176
- mojul
177
-
178
- Halimbawa
179
-
180
- mojul Hayop
181
- KABUUAN = 5
182
-
183
- grupo Aso
184
- ang tahol
185
- panomonasabe "Woof..."
186
- finish_na
187
-
188
- ang kumanin
189
- panomonasabe "..."
190
- finish_na
191
-
192
- ang ikembot_ang_buntot
193
- panomonasabe "Ginagawa ko ito dahil masaya ako!"
194
- finish_na
195
- finish_na
196
- finish_na
197
-
198
- dami = 6
199
- browny = Hayop::Aso.bago
200
- browny.ikembot_ang_buntot ip dami >= Hayop::KABUUAN
201
-
202
- ### agik_ginagawa_mue
203
-
204
- Gumamit ng agik_ginagawa_mue kapag mayroon ka pang kondisyon maliban sa nauna ng kondisyon
205
-
206
- agik_ginagawa_mue
207
- elsip
208
- Halimbawa
209
-
210
- pangalan_mo = "Masipag"
211
- agik pangalan_mo == "Matipuno"
212
- panomonasabe "Ikaw ay si Matipuno!"
213
- agik_ginagawa_mue pangalan_mo == "Masipag"
214
- panomonasabe "Ikaw ay si Masipag!"
215
- ginagawa_mue
216
- panomonasabe "Wala kang rekord saamin!"
217
- finish_na
218
-
219
- ### ge_talon
220
-
221
- Ang ge_talon ay may kalakip na pangalan upang ito ay matawag sa program
222
-
223
- ge_talon
224
- dep
225
-
226
-
227
- Halimbawa
228
-
229
- dep id(estudyante = {})
230
- pangalan = estudyante[:pangalan]
231
- edad = estudyante[:edad]
232
- tirahan = estudyante[:tirahan]
233
- baitang = estudyante[:baitang]
234
- seksiyon = estudyante[:seksiyon]
235
-
236
- panomonasabe <<-FINISH_NA
237
- Pangalan: #{pangalan}
238
- Edad: #{edad}
239
- Tirahan: #{tirahan}
240
- Baitang: #{baitang}
241
- Seksiyon: #{seksiyon}
242
- FINISH_NA
243
- finish_na
244
-
245
- id({
246
- pangalan: "Maliksi Batubalani",
247
- edad: "13",
248
- tirahan: "Ilocos",
249
- baitang: "6",
250
- seksiyon: "Masisipag"
251
- })
252
-
253
- ### reskyu
254
-
255
- Ang reskyu ay ginagamit kung mayroon maaaring mangyaring pagkakamali na gusto mong maisalba o mailigtas
256
-
257
- reskyu
258
- reskyu
259
-
260
- Halimbawa
261
-
262
- wala_na
263
- 1 / 0
264
- reskyu
265
- panomonasabe "Hindi ito posible!"
266
- finish_na
267
-
268
- ### den
269
-
270
- Kung mayroon kang ekspresyon na mayroong inaasahan na resulta, gumamit ng den
271
-
272
- den
273
-
274
- Halimbawa
275
-
276
- panulat_mo = "lapis"
277
-
278
- papel = hakdog panulat_mo
279
- ay "lapis" den "bond paper"
280
- ay "ballpen" den "dilaw na papel"
281
- ginagawa_mue "intermediate paper"
282
- finish_na
283
-
284
- panomonasabe "Ang papel na gagamitin mo ay #{papel}"
285
-
286
- ### dewei
287
-
288
- Kung ang ekspresyon ay mayroong inaasahang dapat na retern na resulta habang gumagana pa ang program, gumamit ng dewei
289
-
290
- dewei
291
- yild
292
-
293
- Halimbawa
294
-
295
- dep gumawaNgID
296
- panomonasabe "------------------------------------------"
297
- dewei
298
- panomonasabe "------------------------------------------"
299
- finish_na
300
-
301
- ang ID(impormasyon = {})
302
- gumawaNgID adbans
303
- panomonasabe <<-FINISH_NA
304
- Pangalan: #{impormasyon[:pangalan]}
305
- Edad: #{impormasyon[:edad]}
306
- Tirahan: #{impormasyon[:tirahan]}
307
- Baitang: #{impormasyon[:baitang]}
308
- Seksiyon: #{impormasyon[:seksiyon]}
309
- FINISH_NA
310
- finish_na
311
- finish_na
312
-
313
- ID({
314
- pangalan: "Maliksi Batubalani",
315
- edad: "13",
316
- tirahan: "Ilocos",
317
- baitang: "6",
318
- seksiyon: "Masisipag"
319
- })
320
-
321
- ### poreber
322
-
323
- Kung may listahan na nais mong isa isahin, gumamit ng poreber
324
-
325
- poreber
326
- por
327
-
328
- Halimbawa
329
-
330
- listahan_ng_mga_prutas = ["mansanas", "mangga", "guava", "santol", "ubas"]
331
- poreber prutas insayd listahan_ng_mga_prutas adbans
332
- panomonasabe prutas.kapitalays
333
- finish_na
334
-
335
- ### neba_gibap
336
-
337
- Ginagamit ang neba_gibap upang umikot muli ang ekspresyon kung may sirang nangyari at nais mo ulit subukan pa andarin
338
-
339
- neba_gibap
340
-
341
- Halimbawa
342
-
343
- bilang_ng_pagkakamali = 0
344
- glhf
345
- 1 / 0
346
- reskyu => pagkakamali
347
- bilang_ng_pagkakamali += 1
348
- neba_gibap ip bilang_ng_pagkakamali < 3
349
- rays "malubhang pagkakamali"
350
- may_raket
351
- panomonasabe "den na"
352
- finish_na
353
-
354
- ### magbalik
355
-
356
- ip mayroon kang ibabalik na resulta sa nagtawag ng ang
357
-
358
- magbalik
359
- retern
360
-
361
- Halimbawa
362
-
363
- dep magdagdag_ng_isa(halaga)
364
- idadagdag = halaga + 1
365
- magbalik halaga
366
- finish_na
367
-
368
- ### agik
369
-
370
- Ginagamit ang agik kung meron kang kondisyon sa iyong ekspresyon
371
-
372
- agik
373
- ip
374
-
375
- Halimbawa
376
-
377
- agik 1 > 0
378
- panomonasabe "mas madami!"
379
- ginagawa_mue
380
- panomonasabe "may sira"
381
- finish_na
382
-
383
- ### grupo
384
-
385
- Ang grupo ay ang pagsasabilang ng isang kaukulang klasipikasyon
386
-
387
- grupo
388
-
389
- Halimbawa
390
-
391
- mojul Tinapay
392
- grupo Donut
393
- dep flavor
394
- panomonasabe 'Strawberry!'
395
- finish_na
396
- finish_na
397
- finish_na
398
-
399
- tinapay = Tinapay::Donut.bago
400
- tinapay.flavor
401
- => 'Strawberry!'
402
-
403
- ### ako_magisip
404
-
405
- Gumamit ng ako_magisip kung may hinihintay pa na resulta, kondisyon o pangyayari
406
-
407
- ako_magisip
408
- waylwaylwayl
409
-
410
- Halimbawa
411
-
412
- may_buhay = israel
413
-
414
- ako_magisip may_buhay
415
- panomonasabe 'may pag-asa!'
416
- auko_na
417
- finish_na
418
- => 'may pag-asa!'
419
-
420
- ### alyas
421
-
422
- Gumamit ng alyas kung kailangan mo tawagin sa ibang pangalan ang iyong ge_talon
423
-
424
- alyas
425
-
426
- Halimbawa
427
-
428
- grupo Hayop
429
- dep aso
430
- panomonasabe 'si browny ay mabait!'
431
- finish_na
432
- alyas browny aso
433
- finish_na
434
-
435
- hayop = Hayop.bago
436
- hayop.browny
437
- => 'si browny ay mabait!'
438
-
439
- ### abugbug
440
-
441
- Ang abugbug ay ginagamit kung kailangan malaman kung umiiral ang isang mojul o klase.
442
-
443
- abugbug
444
- depaynd
445
-
446
- Halimbawa
447
-
448
- mojul Manggagawa
449
- grupo Magsasaka
450
- dep pananim
451
- ['sibuyas', 'kamatis', 'sili', 'palay', 'mais'].its adbans |pananim|
452
- panomonasabe "Mag tatanim ng #{pananim} ngayong panahon"
453
- finish_na
454
- finish_na
455
- finish_na
456
- finish_na
457
-
458
- kung abugbug(Manggagawa::Magsasaka)
459
- panomonasabe 'May nakatukoy!'
460
- finish_na
461
-
462
- ### una_ulo
463
-
464
- Ginagamit ang una_ulo kung may tatanggaling ge_talon sa isang klase
465
-
466
- una_ulo
467
- andep
468
-
469
- Halimbawa
470
-
471
- mojul Hayop
472
- grupo Aso
473
- dep tahol
474
- panomonasabe 'baw waw!'
475
- finish_na
476
- finish_na
477
- finish_na
478
-
479
- grupo Pusa < Hayop::Aso
480
- una_ulo tahol
481
- dep meow
482
- panomonasabe 'meow wahu!'
483
- finish_na
484
- finish_na
485
-
486
- pusa = Pusa.bago
487
-
488
- wala_na
489
- pusa.tahol
490
- reskyu => pagkakamali
491
- panomonasabe "ang pagkakamali ay '#{pagkakamali}'"
492
- finish_na
493
-
494
- ### tama_na
495
-
496
- Gumamit ng 'auko_na' kung may nais kang matapos na kondisyon gamit ang 'ako_magisip'
497
-
498
- tama_na
499
- auko_na
500
-
501
- Halimbawa
502
-
503
- nakamit = isrong
504
-
505
- ako_magisip nakamit == isrong
506
- panomonasabe 'hindi pa nakakamit!'
507
- auko_na
508
- finish_na
509
-
510
- panomonasabe 'nakamit na!'
511
-
512
- ### insayd
513
-
514
- Ginagamit ang 'insayd' kung nais mong matukoy ang kasulukuyang listahan
515
-
516
- insayd
517
-
518
- Halimbawa
519
-
520
- Tignan dep [poreber](#poreber)
521
-
522
- ### adbans
523
-
524
- Ginagamit ang 'adbans' kung nais mong i konteksto ang kasulukuyang listahan
525
-
526
- adbans
527
- dududu
528
-
529
- Halimbawa
530
-
531
- Tignan ang [dewei](#dewei), [abugbug](#abugbug)
532
-
533
- ### hanggang_sa_dulo
534
-
535
- Ang 'hanggang_sa_dulo' ay magpapatuloy tumakbo hanggang_sa_dulo maabot ang tamang kundisyon.
536
-
537
- hanggang_sa_dulo
538
- antil
539
-
540
- Halimbawa
541
-
542
- numero = 0
543
- panghuling_numero = 5
544
- glhf
545
- panomonasabe "Ang numero ay #{numero} na"
546
- numero += 1
547
- finish_na hanggang_sa_dulo numero < panghuling_numero
548
-
549
- ### payless
550
-
551
- payless
552
- anles
553
-
554
- Halimbawa
555
-
556
- mga_persona = [
557
- { pangalan: 'Gener', kasarian: 'lalaki' },
558
- { pangalan: 'Karmen', kasarian: 'babae' }
559
- ]
560
-
561
- mga_persona.its adbans |tao|
562
- payless tao[:kasarian] == 'lalaki'
563
- panomonasabe "si #{tao[:pangalan]} ay babae!"
564
- ginagawa_mue
565
- panomonasabe "si #{tao[:pangalan]} ay lalaki!"
566
- finish_na
567
- finish_na
568
-
569
- ### o
570
-
571
- Ang 'o' ay ginagamit upang piliin ang nagsasauli ng tama.
572
-
573
- o
574
-
575
- Halimbawa
576
-
577
- israel o isrong
578
- => israel
579
-
580
- ## Pagtulong sa pagdedevelop ng Bato
581
-
582
- Magpadala ng mga kahilingan sa paggawa ng ticket.
583
-
584
- ## Lisensya
585
-
586
- Instituto Ng Tekonolohiya sa Massachusetts License (makikita sa LICENSE.txt na file).
58
+ Massachusetts Institute of Technology (Can be viewed in LICENSE.txt file).