Difference between revisions of "Lex Tutorial"

From MKWiki
Jump to navigation Jump to search
Line 13: Line 13:
 
===The Lex Format===
 
===The Lex Format===
 
A Lex program is separated into three sections by '''%%''' delimiters. The format of Lex source is as follows: <br><br>
 
A Lex program is separated into three sections by '''%%''' delimiters. The format of Lex source is as follows: <br><br>
'''{ definitions }'''   <br>
+
'''{ definitions }''' <br>
 
%%  <br>
 
%%  <br>
 
  '''{ rules }'''  <br>
 
  '''{ rules }'''  <br>
 
%%  <br>
 
%%  <br>
 
'''{ user subroutines }'''
 
'''{ user subroutines }'''
 +
 +
 +
==== '''Definitions''' ====
 +
include declarations of '''constant''', '''variable''' and '''regular definitions'''.

Revision as of 01:11, 10 August 2020

Phases of Compilation

Lex

  • Lex is a program that generates lexical analyzer. It is used with YACC parser generator.
  • The lexical analyzer is a program that transforms an input stream into a sequence of tokens.
  • It reads the input stream and produces the source code as output through implementing the lexical analyzer in the C program.

The function of Lex is as follows:

  • Firstly lexical analyzer creates a program lex.1 in the Lex language. Then Lex compiler runs the lex.1 program and produces a C program lex.yy.c.
  • Finally C compiler runs the lex.yy.c program and produces an object program a.out.
  • a.out is lexical analyzer that transforms an input stream into a sequence of tokens.
Running Lex Programs

The Lex Format

A Lex program is separated into three sections by %% delimiters. The format of Lex source is as follows:

{ definitions }
%%

{ rules }   

%%
{ user subroutines }


Definitions

include declarations of constant, variable and regular definitions.