Hirdetés
Új hozzászólás Aktív témák
-
Ursache
senior tag
Ahogy mondtad, hogy programnyelvet kell felismertetni, feldolgozni, egyből a fordítóprogramok tárgy ugrott be, onnét meg bisonc++ és flex. Gondoltam, hogy java-ban is van valami ehhez hasonló (ennek megfelelő) változat, és van
Szépen elkülönítve vannak a részek, struktúrált felépítés, semmi gányolás. Lexikális elemzés, szintaktikus elemzés, szemantikus elemzés, kódgenerálás (kódoptimalizálás).De ennek azért komoly elméleti háttere is van (LA)LR(1) vagy általánosítva k-ra. SLR(1), meg mindenféle formális nyelvek, automata, grammatikák, nyelvosztályok. VDA (véges determinisztikus automaták), különféle algoritmusok, CYK algo, etc... Szóval könnyen el lehet benne veszni.
Hajrá!

-
thon73
tag
Bocsánat, hogy magamnak válaszolok, de időközben végül egy próbaprogrammal megfejtettem:
Object longobject = 0x0102030405060708L;
long longprimitive = (long)longobject;
// char charprimitive = (char)longobject; -> exception
// int intprimitive = (int)longobject; -> exception
char charprimitive = (char)(long)longobject;
int intprimitive = (int)(long)longobject;
// Character charobject = (Character)longobject; -> exception
// Integer intobject = (Integer)longobject; -> exception
Character charobject = Character.valueOf( (char)((Long)longobject).longValue() );
// (char)(long)longobject;
Integer intobject = (int)(long)longobject;Végülis logikus: a wrapper osztályok (szinte) kizárólag a saját primitivjükkel átjárhatóak (boxing). És csak a primitivek alakíthatóak egymásba (casting), a nem öröklési viszonyban álló objectek nem. (Bár a Long-Object átalakítás szintén casting, ha mindent jól értettem.)
Gondolom, ez itt sokaknak nagyon alap szint; de én azért jól megszenvedtem vele, mire kiolvastam a tudományból, hogy pontosan mi is kell ide meg hogyan működik...
-
thon73
tag
A Long Object "lebutítását" csak így tudtam megoldani:
Object result = getLongValue();
result = (long) result & (long) Character.MAX_VALUE;Működni működik, csak nem tűnik túl szépnek.
Viszont egy lépéssel később megint elakadtam. A "lebutított" értéket át is szeretném pakolni egy másik wrapper osztályba. ((Egy univerzális feldolgozó Object-ként kapja meg az értékeket ((Long a numerikus és String a Stringek számára), és különböző átalakítások, ellenőrzések után ezt kellene visszaadnia, csak éppen a kívánt méretnek megfelelő wrapper osztályba helyezve. Pl. Objekctként numerikus Long érték -> Objectként numerikus Character érték.))
Hogyan tudok egy Objectet, ami bizonyosan egy Long értéket tartalmaz, a lehető legegyszerűbben egy olyan Object-té alakítani, ami Character-t tartalmaz? ((A fordító vagy feleslegesnek látja a próbálkozásaimat, vagy hibaüzenetekkel bombáz.))
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Google Pixel topik
- exHWSW - Értünk mindenhez IS
- Most tényleg 8 GB VRAM-mal szúrja ki szemünk az NVIDIA??
- Debrecen és környéke adok-veszek-beszélgetek
- Milyen processzort vegyek?
- Projektor topic
- Vivo X300 - kicsiben jobban megéri
- Hardcore café
- TCL LCD és LED TV-k
- Vigneau interaktív lokálblogja
- További aktív témák...
- GYÖNYÖRŰ iPhone 13 Pro Max 128GB Silver -1 ÉV GARANCIA - Kártyafüggetlen, MS4160
- HIBÁTLAN iPhone 15 Pro 128GB Black Titanium-1 ÉV GARANCIA - Kártyafüggetlen, MS4157
- Honor 90 512GB, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Redmi A5 64GB, Kártyafüggetlen, 1 Év Garanciával
- Asus PN50-E1 mini pc /Ryzen 5 4500U(6 mag)/8GB/240GB/WIN11 PRO/
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Szépen elkülönítve vannak a részek, struktúrált felépítés, semmi gányolás. Lexikális elemzés, szintaktikus elemzés, szemantikus elemzés, kódgenerálás (kódoptimalizálás).

)


