User Tools

Site Tools


semantic_tutorial

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
semantic_tutorial [2015/11/20 16:01]
deva
semantic_tutorial [2016/12/01 17:07]
deva
Line 3: Line 3:
 ==== Step 1: Preparation === ==== Step 1: Preparation ===
  
-  * In this tutorial we use the [[http://​deva.web.elte.hu/​compilers/​lab/​while-language.html|While language]]. It is possible to use your own lexer and parser. If you have not completed it, use [[http://​deva.web.elte.hu/​compilers/lab/​parser.zip|this implementation]].+  * In this tutorial we use the [[http://​deva.web.elte.hu/​compilers/​lab/​while-language.html|While language]]. It is possible to use your own lexer and parser. If you have not completed it, use [[http://​deva.web.elte.hu/​compilers/​parser.zip|this implementation]].
   * If you are working not with your own parser, please take the time to understand the grammar.   * If you are working not with your own parser, please take the time to understand the grammar.
   * Look into the ''​Parser.ih''​ file.   * Look into the ''​Parser.ih''​ file.
     * The function called ''​lex''​ asks the current line number from the parser and saves it into a field of the ''​d_loc<​nowiki>​__</​nowiki>''​ attribute of the ''​Parser''​ class. Then it asks for the next token from the lexer and returns it to the parser.     * The function called ''​lex''​ asks the current line number from the parser and saves it into a field of the ''​d_loc<​nowiki>​__</​nowiki>''​ attribute of the ''​Parser''​ class. Then it asks for the next token from the lexer and returns it to the parser.
     * The line number information is used in the ''​error''​ function to print location information for error messages.     * The line number information is used in the ''​error''​ function to print location information for error messages.
-  * Make sure you can compile the parser and it accepts all the correct [[http://​deva.web.elte.hu/​compilers/lab/​while-tests.zip|test files]] and rejects the lexical error ones. Try out the semantic error test cases! They are accepted. The goal of the tutorial is to find those errors as well.+  * Make sure you can compile the parser and it accepts all the correct [[http://​deva.web.elte.hu/​compilers/​while-tests.zip|test files]] and rejects the lexical error ones. Try out the semantic error test cases! They are accepted. The goal of the tutorial is to find those errors as well.
  
 ==== Step 2: Symbol table === ==== Step 2: Symbol table ===
semantic_tutorial.txt · Last modified: 2016/12/08 13:25 by deva