public abstract class Skript extends Object
Táto abstraktná trieda vnútorne implementuje celý mechanizmus interpretácie skriptov programovacieho rámca GRobot. Jej použitie je automatické.
Poznámka:Verejné statické metódy poskytujú
základné rozhranie na prácu so skriptovacím strojom, napríklad:
vyrob
, ladenie
,
čítajPremennú
,
zapíšPremennú
,
kódPoslednejChyby
, vyrob
a podobne. Dve inštančné metódy komunikujú s konkrétnymi
inštanciami skriptov: vykonaj
a vypíš
. Tie sú užitočné v prípade, že pracujeme s vyrobenou inštanciou
tejto triedy.
Na prácu so skriptami sú určené tieto metódy triedy Svet
(a ich klony):
vykonajSkript(riadky)
,nahrajSkript(názov, súbor)
,vyrobSkript(skript, zoSúboru)
,registrujSkript(názov, skript)
,dajSkript(názov)
volajSkript(názov)
.Užitočná je tiež táto metóda (a jej klony):
Na ladenie skriptov sú určené nasledujúce metódy (vrátane ich rôznych variánt a príbuzných metód):
režimLadenia(zapniLadenie)
,premennáJestvuje(názov,
typ)
,čítajPremennú(názov,
typ)
,zapíšPremennú(názov,
hodnota)
,vymažPremennú(názov,
typ)
;ladenie(riadok,
príkaz, správa)
(jej opis obsahuje základný príklad ladenia;
komplexnejší príklad ladenia je nižšie v sekcii Príklad ladenia
skriptov).Pričom opis chybových stavov je v opise triedy GRobotException
a tiež pri viacerých konštantách definovaných v triede
Konštanty
(v ktorej sú zároveň zhromaždené konštanty
reprezentujúce kódy správ, oznamov a iných informácií používaných
skriptovacím strojom, napríklad ČAKAŤ
,
PRERUŠIŤ
,
VYPÍSAŤ_SKRIPT
,
VYPÍSAŤ_RIADOK
,
VYPÍSAŤ_PRÍKAZ
,
VYKONAŤ_PRÍKAZ
,
VYPÍSAŤ_PREMENNÉ
a podobne).
Poznámka: Krátky úryvok kódu ukazujúci
najjednoduchší spôsob vykonania skriptu uloženého v súbore je v opise
metódy vykonajSkript(skript,
zoSúboru)
. Komplexnejší príklad spúšťania je nižšie v rámci príkladu
ladenia skriptov…
Vybrané pravidlá vykonávania
Informácia: Ďalšie podrobnosti súvisiace
s témou vykonávania príkazov interaktívneho režimu a skriptov
sú v opise metódy Svet.interaktívnyRežim
.
Vykonávanie skriptu úzko súvisí s interaktívnou inštanciou a tým aj s interaktívnym režimom. Na korektné vykonanie príkazu, ktorý nie je riadiacim príkazom (riadiacou štruktúrou) skriptu, musí byť aktívna tzv. interaktívna inštancia robota, plátna alebo sveta, bez ktorej by nebolo možné príkaz správne vyhodnotiť, pretože by nebolo jasné, metódu ktorej inštancie je treba vykonať:
GRobot.interaktívnyRežim(zapni)
(v skriptoch je možné roboty odlíšiť
ich menami);Plátno.interaktívnyRežim(zapni)
(v skriptoch sa plátno rozlišuje buď
ako podlaha, alebo ako strop);Svet.interaktívnyRežim(zapni)
(opis metódy sveta obsahuje ďalšie podrobnejšie informácie).Ak v čase vykonania tzv. platného príkazu skriptu (pozri nižšie) nie
je určená aktívna interaktívna inštancia (dá sa určiť aj priamo v skripte
špeciálnym „príkazom“ @
– pozri nižšie), tak sa vykonávanie
skriptu skončí chybou.
Každý neprázdny riadok skriptu smie obsahovať niektorú z nasledujúcich položiek:
GRobot.vykonajPríkaz
), plátna (Plátno.vykonajPríkaz
) alebo sveta (Svet.vykonajPríkaz
), respektíve príkazy platné pre aktívnu interaktívnu
inštanciu (pozri opis interaktívneho režimu tu; obsahuje ďalšie dôležité informácie,
najmä o príkaze nech
),na
),ak
),ak-inak
),dokedy
),dokedy-inak
),opakuj
),obzor
).Skripty môžu byť rozdelené na bloky, ktoré môžu s výhodou využívať rezervované príkazy (kvázi riadiace štruktúry) skriptov, pretože rovnako ako pri iných programovacích jazykoch aj tu platí, že ak niektorý príkaz (riadiaca štruktúra) vyžaduje na svoje fungovanie ďalší príkaz (napríklad verzie pomieneného spracovania a opakovania bez využitia menoviek), tak tento príkaz môže byť nahradený blokom. Bloky v skriptoch vymedzuje rovnaká veľkosť (úroveň) odsadenia riadkov tabulátormi (čiže úroveň opakujúca sa vo vymedzenej sérii riadkov).
; «text» | – | komentár – tento riadok bude ignorovaný | ||||
: «názov» | – | definícia menovky, ktorá je používaná na skoky (podmienené a nepodmienené – pozri nižšie); názov menovky „koniec“ je rezervovaný (a označuje koniec skriptu) | ||||
@ «názov inštancie» | – | aktivovanie interaktívnej inštancie | ||||
@ | – | zrušenie aktivácie interaktívnej inštancie | ||||
na «menovka» | – | nepodmienený skok – vykonávanie skriptu prejde (preskočí) na riadok označený menovkou (pozri vyššie); názov menovky „koniec“ označuje koniec skriptu | ||||
ak «premenná alebo hodnota» «menovka» | – | podmienený skok – ak je «premenná alebo hodnota» nenulová, tak vykonávanie skriptu prejde (preskočí) na riadok označený menovkou | ||||
ak «premenná alebo hodnota» «menovka1» inak «menovka2» | – | podmienený skok s alternatívou – ak je «premenná alebo hodnota» nenulová, tak vykonávanie skriptu prejde (preskočí) na riadok označený menovkou «menovka1», inak na riadok označený menovkou «menovka2» | ||||
dokedy «premenná» «menovka» | – | podmienený skok s dekrementáciou premennej („cyklus“) – najprv sa zníži hodnota premennej o 1 a ak je výsledok výpočtu záporný, tak sa jej hodnota nastaví na nulu; ak je konečná hodnota premennej kladná, tak vykonávanie skriptu prejde (preskočí) na riadok označený menovkou | ||||
dokedy «premenná» «menovka1» inak «menovka2» | – | podmienený skok s dekrementáciou premennej („cyklus“) s alternatívou – najprv sa zníži hodnota premennej o 1 a ak je výsledok výpočtu záporný, tak sa jej hodnota nastaví na nulu; ak je konečná hodnota premennej kladná, tak vykonávanie skriptu prejde (preskočí) na riadok označený menovkou «menovka1», inak na riadok označený menovkou «menovka2» | ||||
podmienené skoky s dekrementáciou premennej sú navrhnuté tak, aby pomyselne predpokladali prítomnosť kladnej hodnoty v riadiacej premennej a aby sa opakovanie ukončilo v okamihu dosiahnutia nuly v riadiacej premennej (pričom nie je dovolené, aby sa v riadiacej premennej vyskytla záporná hodnota – záporné hodnoty sú prepísané nulou); to znamená, že všetky priebehy vykonania s hodnotou riadiacej premennej menšej alebo rovnej jednej sú identické | ||||||
Vysvetlivky: «podmienka» je slovná skratka, ktorá má v tomto prípade viacero významov – môže to byť premenná, hodnota alebo výraz za mriežkou (pozri poznámku nižšie); «hranica» môže byť literárna hodnota alebo názov premennej, z ktorej sa hodnota prevezme; «príkaz/blok», «príkaz/blok 2» môže byť jediný príkaz na samostatnom riadku alebo blok (pozri vyššie) Poznámka: Syntax s mriežkou je bližšie
spomenutá napríklad v opise metódy | ||||||
| – | podmienené spracovanie (s alternatívou – inak );ak je výsledok/hodnota «podmienky» nenulová, tak sa vykoná «príkaz/blok»; v opačnom prípade, ak je prítomná alternatíva, sa vykoná «príkaz/blok 2»; (pozri príklad 1 nižšie) | ||||
opakuj [«názov premennej»] «hranica»«príkaz/blok» | – | opakovanie/cyklus (s alternatívou – inak );«názov premennej» je nepovinný; určuje premennú, do ktorej sa bude ukladať „číslo iterácie“ (čo je stúpajúca hodnota meniaca sa podľa hodnoty «hranice»); v prípade jej neuvedenia je cyklus anonymný; absolútna hodnota «hranice» určuje počet opakovaní; ak je nenulová, tak sa cyklicky vykonáva «príkaz/blok»; ak je kladná, tak sa hodnota premennej (ak nie je cyklus anonymný) bude meniť od hodnoty 1 po hodnotu «hranice»; ak je záporná, tak sa bude meniť od jej hodnoty po hodnotu −1 (vďaka tomu sa dá pomocou absolútnej hodnoty simulovať klesajúci cyklus, ale má to háčik pri niektorých algoritmoch, pretože nenulová hodnota hranice má pri tomto cykle vždy za následok nenulový počet opakovaní; prípadné zamedzenie vykonania cyklu pri zápornej hranici musí byť ošetrené dodatočnou podmienkou); ak je (už pri prvom pokuse o vykonanie cyklu, to jest pred prvou iteráciou) «hranica» nulová, tak sa v prípade prítomnosti alternatívy ( inak )
vykoná «príkaz/blok 2» (v ostatných prípadoch je alternatíva
ignorovaná, to jest, ak sa vykoná aspoň jedna iterácia cyklu,
alternatíva nebude spustená);ak je pri anonymnom cykle hranica určená hodnotou premennej, tak je jej hodnota prevzatá a premenná je použitá tak, ako keby cyklus nebol anonymný (alebo to môžeme chápať tak, že cyklus prestáva byť anonymným) – pozri príklad 2 nižšie | ||||
opakuj [«názov premennej»] «hranica»«príkaz/blok» inak «príkaz/blok 2» | ||||||
«príkaz/blok» dokedy «názov premennej» | – | zopakovanie predchádzajúceho «príkazu/bloku»
(s alternatívou – inak );«názov premennej» je povinný a jej hodnota určuje počet opätovných zopakovaní predchádzajúceho «príkazu/bloku» (ten sa vždy vykoná najmenej raz – pred prvým vyhodnotením hodnoty «premennej»); ak je hodnota «premennej» väčšia od jednej, tak sa «príkaz/blok» zopakuje a jej hodnota sa zníži o 1; ak je hodnota «premennej» rovná jednej, tak sa vynuluje a prejde sa na vykonávanie príkazov za cyklom (pretože «príkaz/blok» sa už raz vykonal) – v tomto prípade sa nevykonáva «príkaz/blok 2» alternatívy ( inak );ak je hodnota «premennej» nulová alebo záporná, tak sa jej hodnota vynuluje (čo sa viditeľne prejaví len pri záporných hodnotách) a v prípade prítomnosti alternatívy ( inak ) sa vykoná «príkaz/blok 2»;(pozri príklad 3 nižšie) | ||||
«príkaz/blok» dokedy «názov premennej» inak «príkaz/blok 2» | ||||||
obzor «názov obzoru» | – | nastaví obzor pre nasledujúci blok (pozri vyššie;
uvedenie bloku za týmto príkazom je povinné); obzory predstavujú „menné priestory“ premenných (dajú sa nimi celkom dobre simulovať objekty); „menný priestor,“ t. j. obzor, je od názvu premennej oddelený bodkou; obzory sa nedajú prostredníctvom príkazu obzor
„skladať“ – aktívny obzor je platný ako celok a akákoľvek „časť“ mena
obzoru uvedená pred názvom premennej ruší aktívny obzor a nastavuje pre
túto premennú nový obzor (opäť ako celok);(pozri príklad 4 nižšie) |
Príklad 1:
Prvý skript ukazuje využitie premenných, blokov a príkazu podmieneného spracovania s alternatívou.
@svet | |
nech a = uprav číslo "Číslo A:", 5 | |
nech b = uprav číslo "Číslo B:", 3 | |
nech c = otázka "Sčítať = áno; násobiť = nie." | |
vypíš a | |
ak c | |
; Pretože nie je 1. | |
vypíš " × ", b | |
nech c = b | |
nech c * a | |
inak | |
; Pretože áno je 0. | |
vypíš " + ", b | |
nech c = a | |
nech c + b | |
vypíš riadok " = ", c |
Výsledky:
Toto sú ukážky výsledných výpisov na obrazovke po potvrdení rôznych vstupných hodnôt.
Výsledok po potvrdení predvolených hodnôt a voľbe „Áno“: | Výsledok po potvrdení predvolených hodnôt a voľbe „Nie“: | Výsledok po potvrdení hodnôt −5, 3 a voľbe „Áno“: | ||||
5 + 3 = 8 | 5 × 3 = 15 | −5 + 3 = −2 |
Príklad 2:
Ďalší skript je jednoduchou ukážkou príkazu (resp. riadiacej štruktúry) opakovania s vopred zadaným počtom opakovaní (iterácií), pričom počiatočná hodnota premennej zároveň určuje počet opakovaní (hranicu).
@svet | |
nech i = uprav číslo "Počet opakovaní:", 1 | |
opakuj i | |
vypíš " ", i | |
inak | |
vypíš "Žiadne opakovanie." | |
vypíš riadok |
Výsledky:
Nasledujúce tri výpisy ukazujú, aké budú výsledky (výpisy na obrazovke) po potvrdení troch rôznych hodnôt.
Výsledok po potvrdení hodnoty −5: | Výsledok po potvrdení hodnoty 0: | Výsledok po potvrdení hodnoty 5: | ||||
−5 −4 −3 −2 −1 | Žiadne opakovanie. | 1 2 3 4 5 |
Príklad 3:
Tento skript ukazuje správanie skriptu, ktorý používa zopakovanie predchádzajúceho príkazu/bloku s alternatívou. Skript, aby ho nebolo potrebné zakaždým manuálne upravovať, si na začiatku vyžiada potvrdenie hodnoty počtu zopakovaní.
@svet | |
nech i = uprav číslo "Počet zopakovaní:", 3 | |
vypíš "Vykonanie s hodnotou i = ", i | |
vypíš riadok "." | |
dokedy i | |
inak | |
vypíš riadok "(Nemalo sa zopakovať.)" | |
vypíš "Po opakovaniach (i = ", i | |
vypíš riadok ")." |
Výsledky:
Nasledujúce štyri výpisy ukazujú, aké budú výsledky (výpisy na obrazovke) po potvrdení štyroch rôznych hodnôt.
Výsledok po vykonaní s predvolenou hodnotou 3: | Výsledok po potvrdení hodnoty 1: | Výsledok po potvrdení hodnoty 0: | Výsledok po potvrdení hodnoty −2: | ||||||
Vykonanie s hodnotou i = 3. Vykonanie s hodnotou i = 2. Vykonanie s hodnotou i = 1. Po opakovaniach (i = 0). |
Vykonanie s hodnotou i = 1. Po opakovaniach (i = 0). |
Vykonanie s hodnotou i = 0. (Nemalo sa zopakovať.) Po opakovaniach (i = 0). |
Vykonanie s hodnotou i = −2. (Nemalo sa zopakovať.) Po opakovaniach (i = 0). |
Príklad 4:
Tento skript využíva prácu s obzormi. Umiestňuje premennú x do troch
rôznych obzorov a ukazuje „neskladateľnosť“ obzorov pri vzájomnom vnorení
dvoch príkazov obzor
(raz pre obzor a, potom pre obzor b,
pričom napriek vnoreniu nevzniká odkazovanie sa na obzor a.b).
@svet | ||
nech x = -2 | ||
nech a.x = 3 | ||
nech b.x = 12 | ||
nech a.b.x = 8 | ||
vypíš "Hodnoty pred obzorom: x = ", x | ||
vypíš "; a.x = ", a.x | ||
vypíš "; b.x = ", b.x | ||
vypíš riadok "; a.b.x = ", a.b.x | ||
obzor a | ||
vypíš "Hodnoty v obzore a: x = ", x | ||
vypíš "; a.x = ", a.x | ||
vypíš "; b.x = ", b.x | ||
vypíš riadok "; a.b.x = ", a.b.x | ||
obzor b | ||
vypíš "Hodnoty v obzore b: x = ", x | ||
vypíš "; a.x = ", a.x | ||
vypíš "; b.x = ", b.x | ||
vypíš riadok "; a.b.x = ", a.b.x |
Výsledný výpis na obrazovke bude vyzerať takto:
Hodnoty pred obzorom: x = −2; a.x = 3; b.x = 12; a.b.x = 8
Hodnoty v obzore a: x = 3; a.x = 3; b.x = 12; a.b.x = 8
Hodnoty v obzore b: x = 12; a.x = 3; b.x = 12; a.b.x = 8
Príklad ladenia skriptov
Tento príklad predstavuje jednoduchý nástroj na ladenie skriptov.
Dá sa ovládať klávesnicou a myšou. Klávesové skratky na posúvanie
(krokovanie), zastavenie a štart nového skriptu (zoznam názvov je
prebraný z príkazového riadka operačného systému) sú medzerník,
Escape
a Enter
, ale keďže popri interaktívnom režime je aktivovaný
vstupný riadok, ktorý v tomto
prípade slúži ako príkazový
riadok interaktívneho režimu, je treba stlačiť kláves tabulátor,
prípadne kliknúť na plochu, aby riadok stratil smerovanie vstupu (fokus).
(Prípadne môžete v príkazovom riadku zadať a potvrdiť príkaz: skrývaj
vstupný riadok, ale príklad neimplementuje žiadnu možnosť opätovného
zobrazenia príkazového riadka, takže ak ho neobnoví niektorý zo skriptov,
tak ho až do nasledujúceho spustenia aplikácie neuvidíte.)
import
knižnica.*;public
class
TestLadeniaSkriptuextends
GRobot
{// Nasledujúce premenné sú „semafory“ používané počas procesu ladenia:
//
// – krok: hodnota tejto premennej riadi krokovanie; hodnota true
// znamená posunutie programu o krok ďalej (na ďalší príkaz)
// – prerušiť: nastavením hodnoty tejto premennej na true je možné
// ladenie programu predčasne ukončiť
private
boolean
krok =false
, prerušiť =false
;// V tomto súkromnom poli sú uchovávané mená skriptov na cyklické
// spúšťanie:
private
final
String
[] zoznamSkriptov;// Táto premenná slúži na počítanie spúšťania skriptov (a zároveň
// pomáha pri ich cyklickom spúšťaní):
private
int
počítadloSkriptov =0
;// Konštruktor.
private
TestLadeniaSkriptu(String
[] zoznamSkriptov) {// Uchovanie zoznamu s menami skriptov.
this
.zoznamSkriptov = zoznamSkriptov;// Presmerovanie výpisov skriptov na podlahu.
Skript
.presmerujNaPodlahu
();// Definovanie obsluhy udalostí…
new
ObsluhaUdalostí
() {@
Overridepublic
boolean
ladenie
(int
riadok,String
príkaz,int
správa) {// Nasledujúce vetvenie zabezpečuje spracovanie rôznych
// situácií počas ladenia:
switch
(správa) {case
ČAKAŤ
:// Čakanie počas krokovania:
if
(krok) { krok =false
;Svet
.prekresli
();return
false
; }return
true
;case
PRERUŠIŤ
:// Predčasné ukončenie vykonávania skriptu:
if
(prerušiť) {Svet
.farbaTextu
(tmavooranžová
);Svet
.vypíšRiadok
("Vykonávanie bolo prerušené."
);Svet
.predvolenáFarbaTextu
();// Ďalšie podrobnosti by sme mohli vypísať
// napríklad pomocou nasledujúceho úryvku kódu:
// "na riadku", riadok, ":", GRobot.riadok,
// príkaz
}return
prerušiť;// Výpis definovaných menoviek skriptu odfiltrujeme:
case
VYPÍSAŤ_MENOVKY
:return
false
;case
UKONČENIE_SKRIPTU
:if
(!prerušiť) {// Informáciu o ukončení vypíšeme len v prípade,
// že program nebol prerušený:
Svet
.farbaTextu
(tmavotyrkysová
);Svet
.vypíšRiadok
("Vykonávanie bolo dokončené."
);Svet
.predvolenáFarbaTextu
(); }return
false
;case
UKONČENIE_CHYBOU
:// Vypíšeme len text chyby…
Svet
.farbaTextu
(červená
);Svet
.vypíšRiadok
(príkaz);Svet
.predvolenáFarbaTextu
();// Ďalšie podrobnosti by sme mohli vypísať
// napríklad pomocou nasledujúcich úryvkov kódu:
// "Číslo chyby", Svet.kódPoslednejChyby()
// "Riadok chyby ", riadok
return
false
;// Nefiltrujeme žiadne príkazy,
// vykonávame všetko bez rozdielu:
case
ZABRÁNIŤ_VYKONANIU
:return
false
; }// Na všetky ostatné otázky režimu ladenia (VYPÍSAŤ_PREMENNÉ,
// VYPÍSAŤ_RIADOK, VYPÍSAŤ_PRÍKAZ, VYKONAŤ_PRÍKAZ,
// VYPÍSAŤ_SKRIPT) odpovedáme kladne:
return
true
; }@
Overridepublic
void
klik
() {// Ak bolo stlačené pravé tlačidlo myši, zistíme hodnotu
// číselnej premennej (toto je tu uvedené na demonštračné
// účely, dalo by sa to rozpracovať tak, aby si používateľ
// mohol zvoliť typ premennej).
if
(ÚdajeUdalostí
.tlačidloMyši
(PRAVÉ
)) {String
názov =Svet
.zadajReťazec
("Názov číselnej premennej:"
);if
(null
!= názov) {if
(Svet
.premennáJestvuje
(názov,Double
.class
)) {Svet
.farbaTextu
(tyrkysová
);Svet
.vypíšRiadok
(" "
, názov," = "
,Svet
.čítajPremennú
(názov,Double
.class
));Svet
.predvolenáFarbaTextu
(); }else
{Svet
.farbaTextu
(červená
);Svet
.vypíšRiadok
(" Premenná "
, názov,"nejestvuje."
);Svet
.predvolenáFarbaTextu
(); } } }// Inak (t. j. ak boli stlačené ostatné tlačidlá myši):
// Ak prebieha vykonávanie skriptu, tak prejdeme na
// ďalší krok, inak začneme vykonávanie nového skriptu.
else
if
(Svet
.skriptJeSpustený
()) krok =true
;else
spusti(); }@
Overridepublic
void
stlačenieKlávesu
() {if
(ÚdajeUdalostí
.kláves
(Kláves
.ESCAPE
)) {// Klávesom ESC prerušíme ladenie…
prerušiť =true
; krok =true
; }else
if
(Svet
.skriptJeSpustený
()) {if
(ÚdajeUdalostí
.kláves
(Kláves
.MEDZERA
)) {// Klávesom medzera krokujeme…
krok =true
; } }else
{if
(ÚdajeUdalostí
.kláves
(Kláves
.ENTER
)) {// Klávesom ENTER opätovne spúšťame skript…
spusti(); } } }@
Overridepublic
void
tik
() {if
(Svet
.neboloPrekreslené
())Svet
.prekresli
(); } };// Musíme zapnúť režim interaktívny režim (zapneme len Svet a robot),
// režim ladenia a zabezpečíme, aby nebol robot automaticky skrytý po
// prvom výpise na vnútornú konzolu programovacieho rámca (pozri
// poznámku na konci opisu metódy Plátno.vypíš).
Svet
.režimLadenia
(true
);Svet
.interaktívnyRežim
(true
);Svet
.vypíš
(this
);interaktívnyRežim
(true
); spusti();Svet
.spustiČasovač
(); }// Touto metódou sa spúšťa ladenie ďalšieho skriptu. Logicky, pokus
// o spustenie nového ladenia bude vykonaný len v takom prípade,
// keď nie je v činnosti iné ladenie. (Volanie metódy spustiSkript
// by v opačnom prípade i tak nemalo žiadny efekt.)
public
void
spusti() {if
(!Svet
.skriptJeSpustený
()) {// Nastavenie predvolených parametrov robota, rôznych vizuálnych
// parametrov plátien sveta atď., aby malo každé ladenie čo
// najviac podobné podmienky…
Skript
.globálnePremenné
().vymaž
();while
(null
!=Skript
.priestorNaVrchu
())Skript
.vynorPriestor
(); krok =false
; prerušiť =false
;domov
();predvolenáHrúbkaPera
();predvolenáFarba
();predvolenéPísmo
();predvolenýTvar
();podlaha
.predvolenáFarbaPozadiaTextu
();strop
.farbaPozadiaTextu
(snehová
);strop
.písmo
("Cambria"
,16
);podlaha
.písmo
("Consolas"
,11
);Svet
.predvolenáFarbaPlochy
();Svet
.predvolenáFarbaPozadia
();Svet
.vymaž
();Svet
.titulok
(zoznamSkriptov[ počítadloSkriptov % zoznamSkriptov.length]);Svet
.spustiSkript
(zoznamSkriptov[ počítadloSkriptov % zoznamSkriptov.length],true
); ++počítadloSkriptov; } }// Hlavná metóda.
public
static
void
main(String
[] args) {if
(0
== args.length) {System
.out
.println
("Zadajte mená skriptov ako argumenty!"
); }else
{Svet
.použiKonfiguráciu
("TestLadeniaSkriptu.cfg"
);new
TestLadeniaSkriptu(args); } } }
Ďalšie využitie skriptov
Skripty sa dajú použiť aj na oživenie ovládacích prvkov rozhrania
programovacieho rámca. Pozri napríklad:
Tlačidlo.skript(riadky)
,
PoložkaPonuky.skript(riadky)
,
KontextováPoložka.skript(riadky)
.
Modifikátor a typ | Trieda a opis |
---|---|
static class |
Skript.PremenneSkriptu
Alias pre
PremennéSkriptu . |
static class |
Skript.PremennéSkriptu
Táto trieda uchováva a pracuje s mapami premenných skriptov.
|
Konštruktor a opis |
---|
Skript() |
Modifikátor a typ | Metóda a opis |
---|---|
static Object |
citajPremennu(String názov,
Class<?> typ)
Alias pre
čítajPremennú . |
static Object |
čítajPremennú(String názov,
Class<?> typ)
Zistí hodnotu premennej zadaného údajového typu.
|
static Farba |
farbaLadenia(String názov)
Zistí farbu určeného prvku syntaxe používanej pri zobrazovaní
zdrojového kódu v režime
ladenia.
|
static void |
farbaLadenia(String názov,
Color nováFarba)
Určuje novú farbu určeného prvku syntaxe používanej pri zobrazovaní
zdrojového kódu v režime
ladenia.
|
static void |
farbaLadenia(String názov,
Farebnosť objekt)
Určuje novú farbu určeného prvku syntaxe používanej pri
zobrazovaní zdrojového kódu v režime ladenia.
|
static Skript.PremenneSkriptu |
globalnePremenne()
Alias pre
globálnePremenné . |
static Skript.PremenneSkriptu |
globálnePremenné()
Vráti globálny priestor premenných skriptov.
|
static int |
kodPoslednejChyby()
Alias pre
kódPoslednejChyby . |
static int |
kódPoslednejChyby()
Získa kód poslednej chyby, ktorá nastala počas vykonávania
príkazov interaktívneho režimu alebo skriptu.
|
static boolean |
ladenie()
Zistí, či je zapnuté ladenie skriptov programovacieho rámca
GRobot.
|
static void |
ladenie(boolean zapniLadenie)
Zapne alebo vypne ladenie skriptov programovacieho rámca
GRobot.
|
static int |
objemPriestorov()
Vráti aktuálny objem vnútorného zásobníka vnorených priestorov
premenných skriptov.
|
static Object |
poslednaNavratovaHodnota()
Alias pre
poslednáNávratováHodnota . |
static Object |
poslednáNávratováHodnota()
Získa návratovú hodnotu naposledy vykonaného „príkazu“
interaktívneho režimu,
ktorý bol vykonaný vo forme volania niektorej metódy triedy rámca
a to buď samostatne, alebo v rámci vykonávania skriptu.
|
static boolean |
pouzivaPodlahu()
Alias pre
používaPodlahu . |
static boolean |
pouzivaStrop()
Alias pre
používaStrop . |
static boolean |
používaPodlahu()
Metóda zistí, či stroj skriptov používa na aktivity súvisiace
s režimom ladenia (výpisy,
mazanie textov, úprava farebnej schémy…) vnútornú konzolu podlahy.
|
static boolean |
používaStrop()
Metóda zistí, či stroj skriptov používa na aktivity súvisiace
s režimom ladenia (výpisy,
mazanie textov, úprava farebnej schémy…) vnútornú konzolu stropu.
|
static boolean |
premennaExistuje(String názov,
Class<?> typ)
Alias pre
premennáJestvuje . |
static boolean |
premennáExistuje(String názov,
Class<?> typ)
Alias pre
premennáJestvuje . |
static boolean |
premennaJestvuje(String názov,
Class<?> typ)
Alias pre
premennáJestvuje . |
static boolean |
premennáJestvuje(String názov,
Class<?> typ)
Zistí, či jestvuje (je definovaná) premenná so zadaným názvom
a typom.
|
static void |
presmerujNaPodlahu()
Presmeruje všetky aktivity súvisiace s režimom ladenia (výpisy, mazanie textov,
úprava farebnej schémy…) na vnútornú konzolu podlahy.
|
static void |
presmerujNaStrop()
Presmeruje všetky aktivity súvisiace s režimom ladenia (výpisy, mazanie textov,
úprava farebnej schémy…) na vnútornú konzolu stropu.
|
static Skript.PremennéSkriptu |
priestorNaVrchu()
Vráti najvrchnejší priestor vnútorného zásobníka vnorených
priestorov premenných skriptov.
|
static int |
riadokPoslednejChyby()
Ak posledná chyba vznikla na konkrétnom riadku skriptu, tak
táto metóda vráti číslo tohto riadka.
|
static String |
textChyby(int kódChyby)
Vráti vysvetľujúci text ku kódu chyby určenej parametrom
kódChyby . |
static String |
textPoslednejChyby()
Vráti vysvetľujúci text ku kódu poslednej chyby, ktorá nastala
počas vykonávania príkazov
interaktívneho režimu
alebo skriptu.
|
static Skript.PremennéSkriptu |
vnorPriestor(Skript.PremennéSkriptu priestor)
Vloží do vnútorného zásobníka vnorených priestorov premenných
skriptov novú položku – nový priestor.
|
abstract int |
vykonaj()
Táto metóda je implementovaná v každej odvodenej triede a jej
účelom je zabezpečiť vykonanie skriptu.
|
static void |
vymazPremennu(String názov,
Class<?> typ)
Alias pre
vymažPremennú . |
static void |
vymažPremennú(String názov,
Class<?> typ)
Vymaže definíciu premennej zadaného údajového typu.
|
static Skript.PremennéSkriptu |
vynorPriestor()
Vyberie (a vráti) najvrchnejšiu položku zo zásobníka vnorených
priestorov premenných skriptov.
|
void |
vypis()
Alias pre
vypíš . |
static void |
vypisPremenne()
Alias pre
vypíšPremenné . |
abstract void |
vypíš()
Táto metóda je implementovaná v každej odvodenej triede a jej
účelom je zabezpečiť vypísanie skriptu na aktuálnu vnútornú konzolu
(predvolene na strop; pozri aj
presmerujNaPodlahu ). |
static void |
vypíšPremenné()
Vypíše všetky premenné dostupné v aktuálne vykonávanom bloku
(to jest prostredí) na konzolu aktuálneho plátna (predvolene na
strop; pozri aj
presmerujNaPodlahu ). |
static Skript |
vyrob(String[] skript)
Táto metóda vyrobí inštanciu skriptu zo zadaného poľa riadkov.
|
static boolean |
zapisPremennu(String názov,
Object hodnota)
Alias pre
zapíšPremennú . |
static boolean |
zapíšPremennú(String názov,
Object hodnota)
Nastaví novú hodnotu určenej premennej alebo definuje novú
premennú.
|
public abstract int vykonaj()
Táto metóda je implementovaná v každej odvodenej triede a jej účelom je zabezpečiť vykonanie skriptu. Vykonávanie paralelne zabezpečuje aj ladenie skriptu.
ŽIADNA_CHYBA
public abstract void vypíš()
Táto metóda je implementovaná v každej odvodenej triede a jej
účelom je zabezpečiť vypísanie skriptu na aktuálnu vnútornú konzolu
(predvolene na strop; pozri aj presmerujNaPodlahu
). Výpis skriptu je
využívaný počas ladenia.
public void vypis()
Alias pre vypíš
.
public static Skript vyrob(String[] skript)
Táto metóda vyrobí inštanciu skriptu zo zadaného poľa riadkov. Túto metódu využívajú všetky statické metódy sveta, ktoré spúšťajú alebo vytvárajú skripty (zo súborov alebo iných údajových štruktúr), napríklad:
skript
– pole riadkov skriptu, z ktorých bude vyrobená nová
inštancia skriptunull)
(v takom prípade by metóda kódPoslednejChyby
mala vrátiť kód
CHYBA_DVOJITÁ_MENOVKA
)public static void ladenie(boolean zapniLadenie)
Zapne alebo vypne ladenie skriptov programovacieho rámca GRobot.
Ak je ladenie zapnuté, tak sú počas činnosti skriptov vypisované
rôzne informácie o vykonávaní príkazov skriptu na vnútornú konzolu
programovacieho rámca (predvolene na strop;
pozri aj presmerujNaPodlahu
).
Tiež je pravidelne spúšťaná reakcia obsluhy udalostí ladenie
(ak je obsluha
udalostí definovaná).
zapniLadenie
– true
alebo false
ladenie()
,
ObsluhaUdalostí.ladenie(int, String, int)
public static boolean ladenie()
Zistí, či je zapnuté ladenie skriptov programovacieho rámca GRobot.
true
alebo false
ladenie(boolean)
public static Skript.PremenneSkriptu globálnePremenné()
Vráti globálny priestor premenných skriptov. Globálny priestor
premenných je spoločný pre všetky skripty. Lokálne priestory
premenných sú vytvárané a likvidované priebežne počas činnosti
skriptov a preto k nim nie je možné získať prístup „zvonka.“ (Pozri
opis metódy objemPriestorov
.)
Podrobnosti o spôsobe práce s priestorom premenných skriptov sú
v dokumentácii triedy PremennéSkriptu
.
Poznámka: Ten istý výsledok dosiahneme
volaním metódy Skript
.
PremennéSkriptu
.
dajObzor
(
null
)
(resp. Skript
.
PremennéSkriptu
.
dajObzor
(
""
)
).
public static Skript.PremenneSkriptu globalnePremenne()
Alias pre globálnePremenné
.
public static int objemPriestorov()
Vráti aktuálny objem vnútorného zásobníka vnorených priestorov premenných skriptov. Ide o aktuálny počet položiek v zásobníku. Zásobník, o ktorom je reč, uchováva priestory lokálnych premenných spustených skriptov a premenných definovaných vo vnorených blokoch skriptov. Ak nie je spustený žiadny skript, mal by byť jeho objem nulový. V opačnom prípade sa môže hodnota objemu rýchlo meniť.
Poznámka: V opise metódy globálnePremenné
je spomenutý proces
dynamického vytvárania a likvidácie priestorov lokálnych premenných.
Nejde len o lokálne premenné v zmysle individuálnych premenných
skriptu, ale aj o premenné platné len v rámci konkrétneho bloku.
Priestory ich existencie su spravované prostredníctvom vnútorného
zásobníka (tzv. „zásobníka priestorov“), ktorý je sprístupnený
prostredníctvom skupiny metód, do ktorej patrí aj táto metóda.
(Proces dynamického vytvárania a likvidácie lokálnych priestorov môže
byť značne komplikovaný.)
priestorNaVrchu()
,
vnorPriestor(PremennéSkriptu)
,
vynorPriestor()
public static Skript.PremennéSkriptu priestorNaVrchu()
Vráti najvrchnejší priestor vnútorného zásobníka vnorených
priestorov premenných skriptov. (Pozri aj opis metódy objemPriestorov
.) Ak je zásobník prázdny, tak
táto metóda vráti hodnotu null
.
Ak sa na vrchu zásobníka priestorov nenachádza ten priestor, ktorý by ste očakávali (ten, ktorý ste tam mali naposledy vložiť), tak to znamená, že sa niekde stala chyba a tento stav treba vhodne prehodnotiť (odladiť) a prípadne ohlásiť používateľovi aplikácie (chybovým hlásením; prípadne, ak si myslíte, že ide o vnútornú chybu rámca, tak aj autorovi rámca).
null
(pri chybe)objemPriestorov()
,
vnorPriestor(PremennéSkriptu)
,
vynorPriestor()
public static Skript.PremennéSkriptu vnorPriestor(Skript.PremennéSkriptu priestor)
Vloží do vnútorného zásobníka vnorených priestorov premenných
skriptov novú položku – nový priestor. (Pozri aj opis metódy objemPriestorov
.) Tento zásobník je bežne
spravovaný automaticky, čiže sa nepredpokladá aktívne využívanie
tejto metódy, avšak môže byť užitočná napríklad pri simulácii práce
s objektmi a ich vnútornými premennými (atribútmi).
Návratová hodnota null
signalizuje chybu. Pri tejto
metóde to znamená buď pokus o vloženie hodnoty null
namiesto platného priestoru, alebo pokus o duplicitné vloženie
priestoru, čiže takého, ktorý sa už vo vnútornom zásobníku priestorov
nachádza.
priestor
– priestor premenných na vloženie do zásobníka; nesmie
byť null
null
(pri chybe)objemPriestorov()
,
priestorNaVrchu()
,
vynorPriestor()
public static Skript.PremennéSkriptu vynorPriestor()
Vyberie (a vráti) najvrchnejšiu položku zo zásobníka vnorených
priestorov premenných skriptov. (Pozri aj opis metódy objemPriestorov
.) Táto metóda je doplnkom k metóde
vnorPriestor
.
Návratová hodnota null
signalizuje chybu. Pri tejto
metóde to znamená, že zásobník priestorov je prázdny.
null
(pri chybe)objemPriestorov()
,
priestorNaVrchu()
,
vnorPriestor(PremennéSkriptu)
public static void vypíšPremenné()
Vypíše všetky premenné dostupné v aktuálne vykonávanom bloku
(to jest prostredí) na konzolu aktuálneho plátna (predvolene na
strop; pozri aj presmerujNaPodlahu
). Totiž, vnorenie do každého bloku mení prostredie
premenných stroja skriptov – vždy ho prekryje novým priestorom
lokálnych premenných.
Toto je príkaz ladenia. Má uľahčiť proces ladenia formátovaným
výpisom premenných na aktuálnu konzolu. (Informácie o globálnych
premenných sa dajú získať aj prostredníctvom inštancie, ktorú vracia
metóda globálnePremenné
.)
Poznámka: To znamená, že globálne premenné by mohli byť v tomto vnorenom priestore prekryté lokálnymi (prípadne tzv. obzorovými) premennými, ale v skutočnosti je vznik takejto situácie veľmi nepravdepodobný, keďže pri zápise (to jest aj definícii) premenných sa vždy najskôr kontroluje dostupnosť premennej vo vyšších priestoroch premenných…
Na výpis je použitý aktuálny štýl (farebná schéma). Pozri aj:
farbaLadenia
.
public static void vypisPremenne()
Alias pre vypíšPremenné
.
public static boolean premennáJestvuje(String názov, Class<?> typ)
Zistí, či jestvuje (je definovaná) premenná so zadaným názvom a typom.
názov
– názov premennejtyp
– typ premennej – povolené sú: Double.class
,
Color.class
, Poloha.class
alebo
String.class
true
;
ak premenná nejestvuje alebo bol zadaný nepovolený údajový
typ premennej, tak je návratovou hodnotou tejto metódy
hodnota false
Skript.PremennéSkriptu.jestvuje(String, Trieda)
public static boolean premennaJestvuje(String názov, Class<?> typ)
Alias pre premennáJestvuje
.
public static boolean premennáExistuje(String názov, Class<?> typ)
Alias pre premennáJestvuje
.
public static boolean premennaExistuje(String názov, Class<?> typ)
Alias pre premennáJestvuje
.
public static Object čítajPremennú(String názov, Class<?> typ)
Zistí hodnotu premennej zadaného údajového typu. (Ak jestvuje – je definovaná.)
názov
– názov premennejtyp
– typ premennej – povolené sú: Double.class
,
Color.class
, Poloha.class
alebo
String.class
null
Skript.PremennéSkriptu.čítaj(String, Trieda)
public static Object citajPremennu(String názov, Class<?> typ)
Alias pre čítajPremennú
.
public static boolean zapíšPremennú(String názov, Object hodnota)
Nastaví novú hodnotu určenej premennej alebo definuje novú
premennú. Ak je zadaná hodnota nepovoleného údajového typu, tak
nebude nastavená hodnota žiadnej premennej. To isté platí pri pokuse
o zapísanie hodnoty null
. Úspešnosť (resp. neúspešnosť)
nastavenia hodnoty premennej potvrdzuje návratová hodnota tejto
metódy – true
(úspech) / false
(neúspech).
Upozornenie: Nová premenná je prednostne
vytvorená v aktuálnom lokálnom priestore premenných (pozri napríklad
opis metódy objemPriestorov
). Iba
v prípade, že nie je aktívny žiadny lokálny priestor, sa premenná
vytvorí v globálnom priestore. Na zápis premennej do konkrétneho
priestoru premenných (vrátane globálneho) slúži metóda PremennéSkriptu.zapíš
.
názov
– názov premennejhodnota
– hodnota premennej povoleného údajového typu –
povolené sú: Double
,
Color
, Poloha
alebo
String
true
, tak bola zadaná
hodnota zapísaná do premennej prislúchajúceho údajového typuSkript.PremennéSkriptu.zapíš(String, Object)
public static boolean zapisPremennu(String názov, Object hodnota)
Alias pre zapíšPremennú
.
public static void vymažPremennú(String názov, Class<?> typ)
Vymaže definíciu premennej zadaného údajového typu. (Ak jestvuje.)
Upozornenie: Premenná je prednostne
vymazaná z aktuálneho lokálneho priestoru premenných (pozri napríklad
opis metódy objemPriestorov
). V prípade,
že nie je aktívny žiadny lokálny priestor, sa premenná vymaže
z globálneho priestoru. Na vymazanie premennej z konkrétneho priestoru
premenných (vrátane globálneho) slúži
metóda PremennéSkriptu.vymaž
.
názov
– názov premennejtyp
– typ premennej – povolené sú: Double.class
,
Color.class
, Poloha.class
alebo
String.class
Skript.PremennéSkriptu.vymaž(String, Trieda)
public static void vymazPremennu(String názov, Class<?> typ)
Alias pre vymažPremennú
.
public static int kódPoslednejChyby()
Získa kód poslednej chyby, ktorá nastala počas vykonávania príkazov interaktívneho režimu alebo skriptu. Môže ísť buď o jeden z nasledujúcich kódov:
ŽIADNA_CHYBA
,CHYBA_VYKONANIA_PRÍKAZU
,CHYBA_DVOJITÁ_MENOVKA
,CHYBA_CHÝBAJÚCA_MENOVKA
,CHYBA_NEZNÁMA_MENOVKA
,CHYBA_NEZNÁME_SLOVO
,CHYBA_CHYBNÁ_ŠTRUKTÚRA
,CHYBA_NEZNÁME_MENO
,CHYBA_NEZNÁMY_PRÍKAZ
,CHYBA_ČÍTANIA_SKRIPTU
,CHYBA_VOLANIA_SKRIPTU
,alebo o kód s celočíselnou hodnotou väčšou alebo rovnou
50
, kedy ide o chybu spôsobenú pri spracovaní
(matematického) výrazu vyhodnoteného prostredníctvom vnútorného
vyhodnocovača výrazov (pozri
ExpressionProcessor
), ktorý
(syntakticky) nasleduje za znakom mriežky #
(chybové kódy
vnútorného vyhodnocovača (matematických) výrazov nie sú uvedené v tejto
dokumentácii, ale syntax s mriežkou je bližšie spomenutá napríklad
v opise metódy Svet.interaktívnyRežim
; chybové kódy vyhodnocovača sú uvedené v jeho zdrojovom kóde).
Poznámka: Tabuľka chýb je v opise
metódy textChyby
.
riadokPoslednejChyby()
,
textPoslednejChyby()
,
textChyby(int)
public static int kodPoslednejChyby()
Alias pre kódPoslednejChyby
.
public static int riadokPoslednejChyby()
Ak posledná chyba vznikla na konkrétnom riadku skriptu, tak táto metóda vráti číslo tohto riadka.
kódPoslednejChyby()
,
textPoslednejChyby()
,
textChyby(int)
public static String textPoslednejChyby()
Vráti vysvetľujúci text ku kódu poslednej chyby, ktorá nastala počas vykonávania príkazov interaktívneho režimu alebo skriptu.
Poznámka: Tabuľka chýb je v opise
metódy textChyby
.
kódPoslednejChyby()
,
riadokPoslednejChyby()
,
textChyby(int)
public static String textChyby(int kódChyby)
Vráti vysvetľujúci text ku kódu chyby určenej parametrom
kódChyby
. Ide o kódy vnútorne definované a používané
pri hláseniach o nesprávnych stavoch počas vykonávania príkazov
interaktívneho režimu
alebo skriptu.
Tabuľka chýb
V tabuľke sú zosumarizované všetky konštanty reprezentujúce kódy chýb skriptov programovacieho rámca a prislúchajúce textové znenia patriace k týmto kódom. Kliknutím na kód prejdete na ďalšie podrobnosti.
Výnimku tvoria kódy s hodnotou rovnou alebo vyššou než
50
, ktoré sú rezervované pre chyby spôsobené pri
spracovaní výrazu vyhodnoteného prostredníctvom vnútorného
vyhodnocovača výrazov – pozri opis metódy kódPoslednejChyby
.
Kód chyby | Textové znenie chyby |
---|---|
CHYBA_VOLANIA_SKRIPTU | Vznikla chyba pri volaní vnoreného skriptu. (Bola zaznamenaná príliš veľká hĺbka volaní vnorených skriptov.) |
CHYBA_ČÍTANIA_SKRIPTU | Vznikla chyba pri čítaní skriptu. (Súbor alebo zdroj s obsahom skriptu nemusel byť nájdený alebo mohla vzniknúť chyba pri čítaní údajov.) |
ŽIADNA_CHYBA | Nenastala žiadna chyba. (Prípadne mohla nastať neznáma chyba.) |
CHYBA_VYKONANIA_PRÍKAZU | Nastala chyba počas vykonávania posledného príkazu. (Mohlo ísť napríklad o zadanie nesprávneho argumentu a pod.) |
CHYBA_DVOJITÁ_MENOVKA | V skripte sa vyskytla dvojnásobná definícia menovky. (Vykonávanie skriptu nie je bezpečné, pretože skript pri vykonávaní riadiacich príkazov („na,“ „ak,“ „dokedy“ s prípadnou alternatívou „inak“ pri posledných dvoch) nemusí správne identifikovať, ktorým riadkom má jeho vykonávanie pokračovať.) |
CHYBA_CHÝBAJÚCA_MENOVKA | Za riadiacim príkazom „na,“ „ak,“ „dokedy“ alebo za alternatívou „inak“ chýba zadanie menovky. (Za uvedenými riadiacimi príkazmi nie je zadaná menovka, prípadne nie je k dispozícii žiadna náhrada za chýbajúcu menovku, ako napríklad blok príkazov na vykonanie.) |
CHYBA_NEZNÁMA_MENOVKA | Menovka za riadiacim príkazom „na,“ „ak,“ „dokedy“ alebo za alternatívou „inak“ je neznáma. (Nie je definovaná v rámci aktuálneho bloku skriptu alebo pri príkaze „na“ ani v niektorom z nadradených blokov skriptu.) |
CHYBA_NEZNÁME_SLOVO | Za menovkou riadiaceho príkazu „ak“ alebo „dokedy“ sa vyskytlo neznáme slovo. (Za zadaním prvej menovky môže nasledovať ďalšia menovka a to buď bezprostredne, alebo za slovom určujúcim alternatívu – „inak.“ Ostatné slová sú považované za neznáme.) |
CHYBA_CHYBNÁ_ŠTRUKTÚRA | Pokus o korektné rozpoznanie riadiaceho príkazu „obzor,“ „ak,“ „opakuj“ alebo „dokedy“ zlyhal. (Chyba vzniká napríklad, ak riadiaci príkaz nenašiel ďalší príkaz alebo blok na vykonanie/opakovanie. Pri opakovaniach vzniká chyba aj vtedy, ak nie je definovaná riadiaca premenná, ktorú sa riadiaci príkaz pokúša použiť na svoju činnosť.) |
CHYBA_NEZNÁME_MENO | Naposledy aktivovaná inštancia už alebo ešte nejestvuje. (Zadané meno inštancie je neznáme.) |
CHYBA_NEZNÁMY_PRÍKAZ | Zadaný príkaz nebol rozpoznaný. (Najčastejšími príčinami sú syntaktické chyby alebo neaktivovanie správnej (prípadne žiadnej) inštancie, to jest takej, ktorá skutočne obsahuje definíciu metódy zodpovedajúcej príkazu skriptu.) |
50 | Nepodarilo sa priradiť reťazec vyhodnocovaču výrazov. (Vnútorný vyhodnocovač (matematických) výrazov z určitého dôvodu neprijal reťazec na spracovanie.) |
> 50 | Vznikla chyba pri vyhodnocovaní výrazu. (Vnútorný vyhodnocovač (matematických) výrazov ohlásil chybu pri spracovaní reťazca, ktorý pravdepodobne nie je korektným (matematickým) výrazom. Text chyby: «pôvodný text chyby v angličtine».) |
Texty chýb vyhodnocovača (matematických) výrazov sú uvedené v jeho zdrojovom kóde.
kódPoslednejChyby()
,
riadokPoslednejChyby()
,
textPoslednejChyby()
public static Object poslednáNávratováHodnota()
Získa návratovú hodnotu naposledy vykonaného „príkazu“ interaktívneho režimu, ktorý bol vykonaný vo forme volania niektorej metódy triedy rámca a to buď samostatne, alebo v rámci vykonávania skriptu.
public static Object poslednaNavratovaHodnota()
Alias pre poslednáNávratováHodnota
.
public static void presmerujNaPodlahu()
Presmeruje všetky aktivity súvisiace s režimom ladenia (výpisy, mazanie textov, úprava farebnej schémy…) na vnútornú konzolu podlahy. Od okamihu vykonania tejto metódy, budú všetky aktivity presmerované na vnútornú konzolu podlahy.
presmerujNaStrop()
,
používaPodlahu()
,
používaStrop()
public static void presmerujNaStrop()
Presmeruje všetky aktivity súvisiace s režimom ladenia (výpisy, mazanie textov, úprava farebnej schémy…) na vnútornú konzolu stropu. (Toto je predvolené správanie.) Od okamihu vykonania tejto metódy, budú všetky aktivity presmerované na vnútornú konzolu podlahy (ak to tak dovtedy nebolo).
presmerujNaPodlahu()
,
používaPodlahu()
,
používaStrop()
public static boolean používaPodlahu()
Metóda zistí, či stroj skriptov používa na aktivity súvisiace
s režimom ladenia (výpisy,
mazanie textov, úprava farebnej schémy…) vnútornú konzolu podlahy. Ak áno, tak je jej návratová hodnota
true
.
true
v prípade, že
režim ladenia používa
vnútornú konzolu podlahy,
false
v opačnom prípadepresmerujNaPodlahu()
,
presmerujNaStrop()
,
používaStrop()
public static boolean pouzivaPodlahu()
Alias pre používaPodlahu
.
public static boolean používaStrop()
Metóda zistí, či stroj skriptov používa na aktivity súvisiace
s režimom ladenia (výpisy,
mazanie textov, úprava farebnej schémy…) vnútornú konzolu stropu. Ak áno, tak je jej návratová hodnota
true
.
true
v prípade, že
režim ladenia používa
vnútornú konzolu stropu, false
v opačnom prípadepresmerujNaPodlahu()
,
presmerujNaStrop()
,
používaPodlahu()
public static boolean pouzivaStrop()
Alias pre používaStrop
.
public static Farba farbaLadenia(String názov)
Zistí farbu určeného prvku syntaxe používanej pri zobrazovaní
zdrojového kódu v režime
ladenia. Ak zadaný názov farebného prvku syntaxe nekorešponduje
ani s jedným z povolených názvov, tak je vrátená hodnota
null
.
názov
– názov farby vo forme reťazca (povolené sú tieto názvy:
"číslo riadka"
, "menovka"
,
"symbol"
, "meno inštancie"
,
"názov premennej"
, "číslo"
,
"farba"
, "poloha"
, "reťazec"
,
"riadiaci príkaz"
, "príkaz"
,
"aktívny riadok"
, "začiatok bloku"
,
"koniec bloku"
, "jednoduchý výraz"
,
"zložený výraz"
a "chyba"
)null
, ak názov nebo rozpoznanýpublic static void farbaLadenia(String názov, Color nováFarba)
Určuje novú farbu určeného prvku syntaxe používanej pri zobrazovaní
zdrojového kódu v režime
ladenia. Hodnota null
nie je povolená a je ignorovaná.
Farba prvku na nastavenie, je cielená názvom prvku vo forme
reťazca. Ak zadaný názov nekorešponduje ani s jedným z povolených
názvov, tak je zadaná hodnota farby ignorovaná.
názov
– názov farby vo forme reťazca (povolené sú tieto názvy:
"číslo riadka"
, "menovka"
,
"symbol"
, "meno inštancie"
,
"názov premennej"
, "číslo"
,
"farba"
, "poloha"
, "reťazec"
,
"riadiaci príkaz"
, "príkaz"
,
"aktívny riadok"
, "začiatok bloku"
,
"koniec bloku"
, "jednoduchý výraz"
,
"zložený výraz"
a "chyba"
)farba
– nová farba zadaného prvku syntaxepublic static void farbaLadenia(String názov, Farebnosť objekt)
Určuje novú farbu určeného prvku syntaxe používanej pri
zobrazovaní zdrojového kódu v režime ladenia. Farba je určená prostredníctvom objektu, ktorý
implementuje rozhranie Farebnosť
. Hodnota
null
nie je povolená a je ignorovaná.
Farba prvku na nastavenie, je cielená názvom prvku vo forme
reťazca. Ak zadaný názov nekorešponduje ani s jedným z povolených
názvov, tak nie je vykonaná žiadna akcia.
názov
– názov farby vo forme reťazca (povolené sú tieto názvy:
"číslo riadka"
, "menovka"
,
"symbol"
, "meno inštancie"
,
"názov premennej"
, "číslo"
,
"farba"
, "poloha"
, "reťazec"
,
"riadiaci príkaz"
, "príkaz"
,
"aktívny riadok"
, "začiatok bloku"
,
"koniec bloku"
, "jednoduchý výraz"
,
"zložený výraz"
a "chyba"
)objekt
– objekt určujúci novú farbu zadaného prvku syntaxe