Lex
- Program that generates lexical analyzer.
- Used with [[YACC]] Parser
- A Lex program is separated into three sections by \%\% delimiters
1. { definitions } 2. %% 3. { rules } 4. %% 5. { user subroutines }
- Definitions -> Declaration of constants, variable and regular definitions
- Rules -> Statement of form p1 {action1} ...
- User subroutines -> auxillary procedures needed by actions. Subroutine can be loaded by lexical analyzer and compiled separately.
REGEX
- You specify the patterns you are interested in with a notation called a regular expression.
- The +
operator means one or more occurrences of the preceding expression
- m+
means m,mm,mmmmmm....
- The ?
means 0 or 1 occurrences of the preceding expression
- m?
means m
or null
- The *
means 0 or more occurrences of the preceding expression.
- m?
means null
,m,mm,mmmmmm....
-