1/A4 - Katedra informatiky FEI VÅ B-TUO

1/A4 - Katedra informatiky FEI VÅ B-TUO 1/A4 - Katedra informatiky FEI VÅ B-TUO

21.01.2015 Views

Lexikální analýza - Implementace lexikálního analyzátoru • Přímá • Efektivita na úkor složitosti návrhu • Stav je reprezentován pozicí v programu • Simulace konečného automatu • Vhodné spíš pro konstruktory • Využití konstruktoru • Snadná modifikovatelnost • Především v počátečních fázích implementace • LEX (FLEX), JavaCC Programovací jazyky a překladače 46

Lexikální analýza - Přímá implementace for(;;) { skipSpaces(); skipNote(); if( isEof ) return Tokens.EOF; if( Character.isLetter(ch) ) { StringBuffer buf = new StringBuffer(); do { buf.append(ch); getch(); } while( !isEof && Character.isLetterOrDigit(ch) ); stringAttr = buf.toString(); if( stringAttr.compareToIgnoreCase("div") == 0 ) return Tokens.DIV; if( stringAttr.compareToIgnoreCase("mod") == 0 ) return Tokens.MOD; return Tokens.IDENT; } if( Character.isDigit(ch) ) { StringBuffer buf = new StringBuffer(); do { buf.append(ch); getch(); while( !isEof && Character.isDigit(ch) ); numberAttr = Integer.parseInt(buf.toString()); return Tokens.NUMBER; } Programovací jazyky a překladače 47

Lexikální analýza - Implementace<br />

lexikálního analyzátoru<br />

• Přímá<br />

• Efektivita na úkor složitosti návrhu<br />

• Stav je reprezentován pozicí v programu<br />

• Simulace konečného automatu<br />

• Vhodné spíš pro konstruktory<br />

• Využití konstruktoru<br />

• Snadná modifikovatelnost<br />

• Především v počátečních fázích implementace<br />

• LEX (FLEX), JavaCC<br />

Programovací jazyky a překladače 46

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!