Header Ads Widget

LEX

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.

LEX

Lex file format

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

  1. { definitions }   
  2. %%  
  3.  { rules }   
  4. %%   
  5. { user subroutines }  

Definitions include declarations of constant, variable and regular definitions.

Rules define the statement of form p1 {action1} p2 {action2}....pn {action}.

Where pi describes the regular expression and action1 describes the actions what action the lexical analyzer should take when pattern pi matches a lexeme.

User subroutines are auxiliary procedures needed by the actions. The subroutine can be loaded with the lexical analyzer and compiled separately.

Post a Comment

0 Comments