Languages and Syntax Lexical Analysis
Compiling Techniques
Lecture 3: Introduction to Lexical Analysis Christophe Dubach 22 September 2017
Christophe Dubach Compiling Techniques
Compiling Techniques Lecture 3: Introduction to Lexical Analysis - - PowerPoint PPT Presentation
Languages and Syntax Lexical Analysis Compiling Techniques Lecture 3: Introduction to Lexical Analysis Christophe Dubach 22 September 2017 Christophe Dubach Compiling Techniques Languages and Syntax Lexical Analysis Reminder Action
Languages and Syntax Lexical Analysis
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis
Scanner Source code Tokeniser token char Parser AST Semantic Analyser AST Lexer IR Generator IR Errors
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Context-free Language Regular Expression Regular Languages
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Context-free Language Regular Expression Regular Languages
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Context-free Language Regular Expression Regular Languages
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Context-free Language Regular Expression Regular Languages
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Context-free Language Regular Expression Regular Languages
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Context-free Language Regular Expression Regular Languages
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Context-free Language Regular Expression Regular Languages
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Context-free Language Regular Expression Regular Languages
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Context-free Language Regular Expression Regular Languages
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Context-free Language Regular Expression Regular Languages
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Building a Lexer Ambiguous Grammar
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Building a Lexer Ambiguous Grammar
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Building a Lexer Ambiguous Grammar
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Building a Lexer Ambiguous Grammar
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Building a Lexer Ambiguous Grammar
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Building a Lexer Ambiguous Grammar
c l a s s Tokeniser { Scanner scanner ; Token next () { char c = scanner . next ( ) ; // s k i p white spaces i f ( Character . isWhitespace ( c ) ) return next ( ) ; i f ( c == ’+’ ) return new Token ( TokenClass . PLUS ) ; i f ( c == ’−’ ) return new Token ( TokenClass . MINUS ) ; // i d e n t i f i e r i f ( Character . i s L e t t e r ( c )) { S t r i n g B u i l d e r sb = new S t r i n g B u i l d e r ( ) ; sb . append ( c ) ; c = scanner . peek ( ) ; while ( Character . i s L e t t e r O r D i g i t ( c ) ) { sb . append ( c ) ; scanner . next ( ) ; c = scanner . peek ( ) ; } return new Token ( TokenClass . IDENTIFIER , sb . t o S t r i n g ( ) ) ; } Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Building a Lexer Ambiguous Grammar
// number i f ( Character . i s D i g i t ( c )) { S t r i n g B u i l d e r sb = new S t r i n g B u i l d e r ( ) ; sb . append ( c ) ; c = scanner . peek ( ) ; while ( Character . i s D i g i t ( c )) { sb . append ( c ) ; scanner . next ( ) ; c = scanner . peek ( ) ; } return new Token ( TokenClass .NUMBER, sb . t o S t r i n g ( ) ) ; } } } Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Building a Lexer Ambiguous Grammar
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Building a Lexer Ambiguous Grammar
Christophe Dubach Compiling Techniques
Languages and Syntax Lexical Analysis Building a Lexer Ambiguous Grammar
Christophe Dubach Compiling Techniques