Preskoči na glavno vsebino
Učilnica FRI 23/24
  • Domov
  • Več
Zapri
Preklopi iskalni vnos
Slovenščina ‎(sl)‎
English ‎(en)‎ Slovenščina ‎(sl)‎ Македонски ‎(mk)‎ Русский ‎(ru)‎ 한국어 ‎(ko)‎
Trenutno uporabljate gostujoči dostop
Prijavite se
Domov
Course Activities
Forumi Naloge Viri
Nedavno dostopani predmeti
You are not enrolled in any courses
  1. pns
  2. 3. domača naloga

3. domača naloga

Zahteve zaključka
Odprto: petek, 26. april 2024, 15.00
Rok za oddajo: ponedeljek, 6. maj 2024, 07.00

Sestavite generiranje abstraktnega sintaksnega drevesa.

Nalogo rešite z dopolnitvijo sintaksnega analizatorja. V posamezne metode sintaksnega analizatorja vstavite kodo za gradnjo abstraktnega sintaksnega drevesa, ob tem pa se seveda spremeni tip rezultata posamezne metode. Obenem izračunajte vrednost atributa, ki opisuje lokacijo kode, ki pripada posameznemu vozlišču abstraktnega sintaksnega drevesa.

Obenem morate spremeniti metodo parse v paketu SynAn.  Po novem je ta metoda sledeča:

public AST.Node parse(HashMap<AST.Node, Report.Locatable> attrLoc) {
    this.attrLoc = attrLoc;
    final AST.Nodes<AST.MainDef> defs = parseProgram();
    if (lexAn.peekToken().symbol() != Token.Symbol.EOF)
        Report.warning(lexAn.peekToken(),
            "Unexpected text '" + lexAn.peekToken().lexeme() + "...' at the end of the program.");
    return defs;
}

Dodate pa še lokalno spremenljivko attrLoc:

private HashMap<AST.Node, Report.Locatable> attrLoc;

Rešitev domače naloge oddajte na Učilnico kot datoteko xxxxxxxx-abstr.zip, pri čemer je xxxxxxxx vaše vpisna številka.  Ta datoteka mora imeti natančno enako strukturo direktorijev kot datoteka s predlogo domače naloge, datoteke in direktoriji morajo biti enako poimenovani.  Oddajte samo izvorno kodo.

◄ Predloga 2. domače naloge
Predloga 3. domače naloge ►
Trenutno uporabljate gostujoči dostop (Prijavite se)
Pridobi mobilno aplikacijo Obvestilo o avtorskih pravicah
Stran poganja Moodle