Ang Bato ay isang programming language sa wikang Filipino
Switch branches/tags
Nothing to show
Clone or download
jjuliano Ibaba ang kailangan bersiyon ng Ruby patungo sa 2.3; Possible nang ma…
…g pasa ng madaming file sa bato interpreter. Iangat ang bersiyon patungong 0.11. Mga iba't ibang pag lilinis.
Latest commit a47736e Jun 20, 2018

README.md

Bato

Ang 'Bato Programming Language' ay isang scripting language sa wikang Filipino.

Subukan ang Bato

Pagtatalaga

Kailangan mo munang i-install ang Ruby programming language (version 1.9.3 o mas bago) at pagkatapos maitalaga ang Ruby, i-run naman ito

gem install bato

Bakit Bato?

Ang 'bato' ay hango sa Ruby Programming Language na may Filipino sintaks. Ang kadahilanang ginamit ang pangalang 'bato' ay dahil ang Ruby ay isang uri ng bato.

Ang unang program

Gumawa ng isang file na kamusta_mundo.bt na may mga sumusunod na nilalaman

kapag 1 > 0
  mag_print "Kumusta mundo!"
kung_hindi
  mag_print "Mayroong sira"
wakas

at pa-andarin ang program sa pamamagitan ng

bato kamusta_mundo.bt

Sintaks

Pagsusulat

"Ito ay mga serye ng mga sulat sa wikang Filipino"
<<-KATAPUSAN
  mga salita
  na nahahati
  sa ilang mga hilera
KATAPUSAN

Dinikit na mga pamamaraan

'magandang araw'.baliktad         # => 'wara gnadnagam'
'Pangungusap'.haba                # => 11

Ekspresyong Boolean

tama
mali
hindi tama

Kondisyon

Paggamit ng kondisyon.

kapag halaga > 100 dapat
  "ayos lang"
kung_kapag halaga > 0 dapat
  "ok lang"
kung_hindi
  "wala lang"
wakas

kung_sakaling halaga
pagka 5 dapat "lima"
pagka 4 dapat "apat"
kung_hindi "wala"
wakas

Pamamaraan sa pagkakamali

bilang_ng_pagkakamali = 0
simula
  # mag komento kapag hindi sigurado
  1 / 0
iligtas => pagkakamali
  bilang_ng_pagkakamali += 1
  subukang_muli kapag bilang_ng_pagkakamali < 3
  iangat "malubhang pagkakamali"
siguraduhing
  mag_print "Tapos na"
wakas

Panuntunan

ang iprintAngPangalan(pangalan = wala)
  kapag pangalan != wala
    mag_print "Magandang araw sa iyo #{pangalan}!"
  kung_hindi
    mag_print "Magandang araw!"
  wakas
wakas

iprintAngPangalan "Maria" # => "Magandang araw sa iyo Maria!"
iprintAngPangalan         # => "Magandang araw!"

Paggamit ng mga ekspresyon ng mga salita sa program

wakas

Maari kang gumamit sa alin sa mga sumusunod sa pagtatapos ng program

wakas
dulo
katapusan

Halimbawa

bilang_ng_saging = 2
kapag bilang_ng_saging > 1
  mag_print "Mayroon akong #{bilang_ng_saging} saging! 🍌"
kung_hindi
  mag_print "Wala na akong saging! 😐"
wakas

kung_iba

Kapag ang ekspresyon ay hindi nasunod maaring gumamit sa alin sa mga sumusunod

iba
kung_iba
kung_hindi
kung_hindi_naman
kapag_hindi
kapag_hindi_naman
kung_hindi_pa
kapag_hindi_pa
at_kung_hindi
at_kapag_hindi
at_kung_hindi_naman
at_kapag_hindi_naman
at_kapag_hindi_pa
at_kung_hindi_pa
maliban_dito
maliban_sa_mga_ito

Halimbawa

pangalan_mo = "Maliksi"
kapag_ang pangalan_mo == "Maliksi"
  mag_print "Ikaw ay si #{pangalan_mo}!"
kung_hindi_naman
  mag_print "Magandang araw sa iyo #{pangalan_mo}!"
wakas

sakali

Kapag mayroon kang ekspresyon na madaming resulta gawa ng mga iba't ibang kondisyon, maari kang gumamit ng mga sumusunod

sakaling
sakali
kung_sakaling
sakali_na
kung_sakali_na
kalagayan
kaukulan

Halimbawa

pangalan_mo = "Mabait"

sakaling pangalan_mo
ay "Maliksi"
  mag_print "Ikaw ay si Maliksi!"
ay "Matipuno"
  mag_print "Ikaw ay si Matipuno!"
ay "Mabait"
  mag_print "Ikaw ay si Mabait!"
maliban_dito
  mag_print "Magandang araw sa iyo!"
wakas

tiyakin

Kung mayroon kang ekspresyon na gusto mong masunod kahit ano pa ang kahihinatnan nito, gumamit ng mga sumusunod

tiyaking
matiyak
tiyakin
siguraduhing
siguraduhin
panigurado

Halimbawa

simulan
  itaas "May sira!"
agapan
  mag_print "Ipagpatuloy..."
  itaas "May nasira na na-agapan"
tiyaking
  mag_print "Tapos na"
wakas

grupo

Ang grupo ay ang lalagyanan ng mga kabilang na klase sa iyong program

grupo

Halimbawa

grupo Hayop
  KABUUAN = 5

  bilang Aso
    ang tahol
      mag_print "Woof..."
    wakas

    ang kumanin
      mag_print "..."
    wakas

    ang ikembot_ang_buntot
      mag_print "Ginagawa ko ito dahil masaya ako!"
    wakas
  wakas
wakas

dami = 6
browny = Hayop::Aso.kumatawan
browny.ikembot_ang_buntot kapag dami >= Hayop::KABUUAN

ngunit_kapag

Gumamit ng ngunit_kapag kapag mayroon ka pang kondisyon maliban sa nauna ng kondisyon

ngunit_kapag
kung_kapag
ngunit_kapag_ang
kung_kapag_ang

Halimbawa

pangalan_mo = "Masipag"
kapag_ang pangalan_mo == "Matipuno"
  mag_print "Ikaw ay si Matipuno!"
ngunit_kapag_ang pangalan_mo == "Masipag"
  mag_print "Ikaw ay si Masipag!"
maliban_sa_mga_ito
  mag_print "Wala kang rekord saamin!"
wakas

ang

Ang ang ay may kalakip na pangalan upang ito ay matawag sa program

ang
panuntunan
panuntunang

Halimbawa

ang id(estudyante = {})
  pangalan = estudyante[:pangalan]
  edad     = estudyante[:edad]
  tirahan  = estudyante[:tirahan]
  baitang  = estudyante[:baitang]
  seksiyon = estudyante[:seksiyon]

  mag_print <<-KATAPUSAN
    Pangalan: #{pangalan}
    Edad:     #{edad}
    Tirahan:  #{tirahan}
    Baitang:  #{baitang}
    Seksiyon: #{seksiyon}
  KATAPUSAN
wakas

id({
  pangalan: "Maliksi Batubalani",
  edad: "13",
  tirahan: "Ilocos",
  baitang: "6",
  seksiyon: "Masisipag"
})

agapan

Ang agapan ay ginagamit kung mayroon maaaring mangyaring pagkakamali na gusto mong maisalba o mailigtas

iligtas
agapan

Halimbawa

simulan
  1 / 0
agapan
  mag_print "Hindi ito posible!"
wakas

dapat

Kapag mayroon kang ekspresyon na mayroong inaasahan na resulta, gumamit ng dapat

dapat

Halimbawa

panulat_mo = "lapis"

papel = sakaling panulat_mo
  ay "lapis" dapat "bond paper"
  ay "ballpen" dapat "dilaw na papel"
  maliban_sa_mga_ito "intermediate paper"
wakas

mag_print "Ang papel na gagamitin mo ay #{papel}"

magbigay_daan

Kapag ang ekspresyon ay mayroong inaasahang dapat na ibigay na resulta habang gumagana pa ang program, gumamit ng magbigay_daan

magbigay_daan
bigyang_daan

Halimbawa

ang gumawaNgID
  mag_print "------------------------------------------"
  magbigay_daan
  mag_print "------------------------------------------"
wakas

ang ID(impormasyon = {})
  gumawaNgID na_ganito
    mag_print <<-KATAPUSAN
      Pangalan: #{impormasyon[:pangalan]}
      Edad:     #{impormasyon[:edad]}
      Tirahan:  #{impormasyon[:tirahan]}
      Baitang:  #{impormasyon[:baitang]}
      Seksiyon: #{impormasyon[:seksiyon]}
    KATAPUSAN
  wakas
wakas

ID({
  pangalan: "Maliksi Batubalani",
  edad: "13",
  tirahan: "Ilocos",
  baitang: "6",
  seksiyon: "Masisipag"
})

para_sa

Kapag may listahan na nais mong isa isahin, gumamit ng para_sa

para_sa
para_ang

Halimbawa

listahan_ng_mga_prutas = ["mansanas", "mangga", "guava", "santol", "ubas"]
para_sa prutas na_nasa listahan_ng_mga_prutas ganito_gawin
  mag_print prutas.sa_malaking_titik
wakas

subukang_muli

Ginagamit ang subukang_muli upang umikot muli ang ekspresyon kung may sirang nangyari at nais mo ulit subukan pa andarin

subukang_muli

Halimbawa

bilang_ng_pagkakamali = 0
simula
  1 / 0
agapan => pagkakamali
  bilang_ng_pagkakamali += 1
  subukang_muli kapag bilang_ng_pagkakamali < 3
  iangat "malubhang pagkakamali"
siguraduhing
  mag_print "Tapos na"
wakas

ibalik

Kapag mayroon kang ibabalik na resulta sa nagtawag ng ang

ibalik
ibalik_ang
magbalik
magbalik_nang
isauli
isauli_ang
ibigay
ibigay_ang
magbigay
magbigay_nang

Halimbawa

ang magdagdag_ng_isa(halaga)
  idadagdag = halaga + 1
  ibalik_ang halaga
wakas

kapag

Ginagamit ang kapag kung meron kang kondisyon sa iyong ekspresyon

kapag
kapag_ang
kapag_na_ang
kung
kung_ang

Halimbawa

kapag_ang 1 > 0
  mag_print "mas madami!"
kung_iba
  mag_print "may sira"
wakas

bilang

Ang bilang ay ang pagsasabilang ng isang kaukulang klasipikasyon

bilang

Halimbawa

grupo Tinapay
  bilang Donut
    ang flavor
      mag_print 'Strawberry!'
    wakas
  wakas
wakas

tinapay = Tinapay::Donut.kumatawan
tinapay.flavor
=> 'Strawberry!'

habang

Gumamit ng habang kung may hinihintay pa na resulta, kondisyon o pangyayari

habang
habang_ang

Halimbawa

may_buhay = totoo

habang may_buhay
  mag_print 'may pag-asa!'
  hinto
wakas
=> 'may pag-asa!'

alyas

Gumamit ng alyas kung kailangan mo tawagin sa ibang pangalan ang iyong panuntunan

alyas

Halimbawa

bilang Hayop
  ang aso
    mag_print 'si browny ay mabait!'
  wakas
  alyas browny aso
wakas

hayop = Hayop.kumatawan
hayop.browny
=> 'si browny ay mabait!'

nakatukoy?

Ang nakatukoy? ay ginagamit kung kailangan malaman kung umiiral ang isang grupo o klase.

nakatukoy?
nakasaad?

Halimbawa

grupo Manggagawa
  bilang Magsasaka
    ang pananim
      ['sibuyas', 'kamatis', 'sili', 'palay', 'mais'].isaisahin na_ganito |pananim|
        mag_print "Mag tatanim ng #{pananim} ngayong panahon"
      wakas
    wakas
  wakas
wakas

kung nakatukoy?(Manggagawa::Magsasaka)
  mag_print 'May nakatukoy!'
wakas

tanggalin

Ginagamit ang tanggalin kung may tatanggaling panuntunan sa isang klase

tanggalin
magtanggal

Halimbawa

grupo Hayop
  bilang Aso
    ang tahol
      mag_print 'baw waw!'
    wakas
  wakas
wakas

bilang Pusa < Hayop::Aso
  tanggalin tahol
  ang meow
    mag_print 'meow wahu!'
  wakas
wakas

pusa = Pusa.kumatawan

simulan
  pusa.tahol
agapan => pagkakamali
  mag_print "ang pagkakamali ay '#{pagkakamali}'"
wakas

ihinto

Gumamit ng 'hinto' kung may nais kang matapos na kondisyon gamit ang 'habang'

ihinto
hinto

Halimbawa

nakamit = mali

habang nakamit == mali
  mag_print 'hindi pa nakakamit!'
  hinto
wakas

mag_print 'nakamit na!'

sa

Ginagamit ang 'sa' kung nais mong matukoy ang kasulukuyang listahan

sa
sa_loob_ng
nasa
na_nasa

Halimbawa

Tignan ang para_sa

ganito

Ginagamit ang 'ganito' kung nais mong i konteksto ang kasulukuyang listahan

na_ganito
nang_ganito
ganito

Halimbawa

Tignan ang magbigay_daan, nakatukoy?

hanggang

Ang 'hanggang' ay magpapatuloy tumakbo hanggang maabot ang tamang kundisyon.

hanggang
hanggang_ang
mapa_hanggang

Halimbawa

	numero = 0
	panghuling_numero = 5
	simula
	  mag_print "Ang numero ay #{numero} na"
	  numero += 1
	wakas hanggang numero < panghuling_numero

maliban_na

malibang
maliban_na
maliban_ang

Halimbawa

mga_persona = [
  { pangalan: 'Gener', kasarian: 'lalaki' },
  { pangalan: 'Karmen', kasarian: 'babae' }
]

mga_persona.isaisahin ng_ganito |tao|
  malibang tao[:kasarian] == 'lalaki'
    mag_print "si #{tao[:pangalan]} ay babae!"
  maliban_dito
    mag_print "si #{tao[:pangalan]} ay lalaki!"
  wakas
wakas

o

Ang 'o' ay ginagamit upang piliin ang nagsasauli ng tama.

o
o_ang

Halimbawa

totoo o mali
=> totoo

Pagtulong sa pagdedevelop ng Bato

Magpadala ng mga kahilingan sa paggawa ng ticket.

Lisensya

Instituto Ng Tekonolohiya sa Massachusetts License (makikita sa LICENSE.txt na file).