tkohout / ostrajava Goto Github PK
View Code? Open in Web Editor NEWBo neni cas pyco
Bo neni cas pyco
Nema byt hlavni tryda Stodolní?
.
v části popisů podmínek v readme.md
není teoreticky možné spustit elif část programu
Exception => Flakanec
throw => dostanes - nebude nutne davat zrob a ()
throws => rozdava
try => pultik
catch => bitka
Priklad:
Drist drystaniPredMicrofonem() rozdava Flakanec {
kaj (mikrofon != chuj aj mikrofon.zapnuty) {
davaj "Hanzel desitka" pyco
} boinak {
dostanes Flakanec pyco
}
}
pultik {
drystaniPredMicrofonem() pyco
} bitka(Flakanec f) {
soudruziPomoc() pyco
}
Compile vždy na dá na první řádek "????"
Run pak vyhodí exception že "????" není číslo.
Pochopil jsem správně spouštění? Compile a pak Run?
alespoň v README.
Soudě podle definice datových typů uvedené výše.
Vytvořil jsem díky vám OstraScript - ostravský jazyk podle OSTRAJavy pro JavaScript
Vzhledem k dovedně zvolenému oddělovači řádků — je nutné, aby kód používal tolik odřádkovávání? Snad by každý program měl být vždy one-liner, což je zároveň blízké způsobu ostravské mluvy.
Mám na PC složku, ve které mám soubor CURRENT.cyp
s OSTRAJava programem. Složku staženou z githubu jsem si dal do /usr/lib/OSTRAJava
, aby byla přístupná odkudkoliv. Na kompilaci jsem si vytvořil jednoduchý skript:
#!/bin/sh
clear
echo "\n\n\nKompiluji..."
cesta=$(pwd)
cd /usr/bin/OSTRAJava/
./ostrajavac -d "$cesta/" "$cesta/CURRENT.cyp" "$cesta/znaky.txt"
echo "Spouštím..."
./ostrajava "$cesta/"
Ve složce $cesta mám soubor, ze kterého chcu, aby OJ četla. Problém je, že program ostrajava
sice spouští program ve složce $cesta, ale spouští ho z adresáře /usr/bin/OSTRAJava/
. A program $cesta tudíž na soubor v adresáři $cesta nevidí.
Mohl bych příkaz ./ostrajava "$cesta/"
nahradit příkazy cd "$cesta"
a /usr/lib/OSTRAJava/ostrajava .
, jenže program ostrajava
má očividně nějaké podivné závislosti.
Jak to mám vyřešit? Nesouvisí s tímto problémem trochu toto?
Děkuji
Zda se ze u OSTRAjavy obecne nezalezi na tom zda je pouzita mezera nebo tabulator. Ale pri pouziti tabulatoru za kajtez
dochazi k chybe prekladu.
Testovaci kod:
cyslo chacharNaCyslo(chachar nejakyChachar){
kaj (nejakyChachar == 'A') { davaj 1 pyco }
kajtez (nejakyChachar == 'B') { davaj 2 pyco }
kajtez (nejakyChachar == 'C') { davaj 3 pyco }
kajtez (nejakyChachar == 'D') { davaj 4 pyco }
kajtez (nejakyChachar == 'E') { davaj 5 pyco }
kajtez (nejakyChachar == 'F') { davaj 6 pyco }
boinak {
Konzola.pravit("Fcil sme v pyci") pyco
davaj 0 pyco
}
}
Pokud je za kajtez
pouzita pouze mezera, preklad probehne bez problemu. Pokud pouziju tabulator dostanu pri prekladu nasledujici chybu:
parse error in file Ostrava.cyp: Encountered " "kajtez" "kajtez "" at line 20, column 17.
Was expecting one of:
"toz" ...
"forant" ...
"joch" ...
"chuj" ...
"fajne" ...
"nyt" ...
"zrob" ...
"kaj" ...
"boinak" ...
"rubat" ...
"zdybat" ...
"dlabat" ...
"davaj" ...
"dechrobok" ...
<INTEGER_LITERAL> ...
<FLOATING_POINT_LITERAL> ...
<CHARACTER_LITERAL> ...
<STRING_LITERAL> ...
"(" ...
"}" ...
...Exception in thread "main" cz.cvut.fit.ostrajava.Parser.ParseException: Encountered " "kajtez" "kajtez "" at line 20, column 17.
Was expecting one of:
"toz" ...
"forant" ...
"joch" ...
"chuj" ...
"fajne" ...
"nyt" ...
"zrob" ...
"kaj" ...
"boinak" ...
"rubat" ...
"zdybat" ...
"dlabat" ...
"davaj" ...
"dechrobok" ...
<INTEGER_LITERAL> ...
<FLOATING_POINT_LITERAL> ...
<CHARACTER_LITERAL> ...
<STRING_LITERAL> ...
"(" ...
"}" ...
...at cz.cvut.fit.ostrajava.Parser.OSTRAJavaParser.generateParseException(OSTRAJavaParser.java:4393) at cz.cvut.fit.ostrajava.Parser.OSTRAJavaParser.jj_consume_token(OSTRAJavaParser.java:4271) at cz.cvut.fit.ostrajava.Parser.OSTRAJavaParser.Block(OSTRAJavaParser.java:2502) at cz.cvut.fit.ostrajava.Parser.OSTRAJavaParser.MethodDeclaration(OSTRAJavaParser.java:480) at cz.cvut.fit.ostrajava.Parser.OSTRAJavaParser.ClassBodyDeclaration(OSTRAJavaParser.java:156) at cz.cvut.fit.ostrajava.Parser.OSTRAJavaParser.ClassDeclaration(OSTRAJavaParser.java:118) at cz.cvut.fit.ostrajava.Parser.OSTRAJavaParser.CompilationUnit(OSTRAJavaParser.java:38) at cz.cvut.fit.ostrajava.Compile.parse(Compile.java:183) at cz.cvut.fit.ostrajava.Compile.exec(Compile.java:69) at cz.cvut.fit.ostrajava.Main.main(Main.java:28)
Aktuálně není možné zkompilovat program používající java třídy.
banik pyco
import java.util.Date pyco
tryda Ostrava{
rynek(){
toz Date d = new Date() pyco
Konzola.pravit(d.getTime().naDryst()) pyco
}
}
fajront pyco
Kvalitní SW je též třeba testovat. Proto je nutné též bývalým horníkum nabídnout podporu k získání dobrých programovacích návyků za pomoci knihovny PorubaUnit:
banik pyco
@ZkouskaJednotkova
parlamentniDivadylko() {
toz Mikrofon mikrofon = zrob Microfon() pyco
toz Nahoda nahoda = zrob Nahoda() pyco
toz cyslo i = 0 pyco
rubat (i < 500) {
microfon.zapnuty = nahoda.dejDalsiBul() pyco
kaj (microfon.zapnuty) {
toz Dryst dryst = toSeKurvaNepojebe { drystaniPredMicrofonem(mikrofon) } pyco
tvrdimZe(dryst).seMusiKurvaRovnat("Hanzel desitka") pyco
} boinak {
ubaliFlakanecJakCyp { drystaniPredMicrofonem(mikrofon) } pyco
}
i = i + 1 pyco
}
}
fajront pyco
Dobry den,
nezvazujete distribuovat krome zdrojovych kodu take zkompilovanou ostrajavu? Patrne by stacil nejaky zip/tgz ktery by obsahoval prelozeny jar a ostrajava_lib.
Nasim uzivatelum by to velmi zjednodusilo pouziti ostrajavy.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.