-  Το αρχείο εισόδου αποτελείται από τα παρακάτω τμήματα:
 -  Η δομή του αρχείου είναι η παρακάτω:
definitions
%%
rules
%%
user code
 -  Οι ορισμοί επιτρέπουν τον ορισμό κανονικών εκφράσεων με τη σύνταξη:
name definition.
 -  Παράδειγμα:
DIGIT    [0-9]
ID       [a-z][a-z0-9]*
 -  Στους ορισμούς προσθέτουμε και την εντολή:
%option noyywrap
για να δηλώσουμε πως η είσοδός μας αποτελείται από ένα μόνο αρχείο.
 -  Στους ορισμούς μπορούμε να ορίσουμε και μεταβλητές της C για
δική μας χρήση αρχίζοντας της γραμμή με κενό:
DIGIT	[0-9]
	int numlines;
 -  Τέλος στους ορισμούς μπορούμε να ορίσουμε πρόσθετα αρχεία εισόδου
μέσα σε ενότητες %{ και %}:
%{
#include <math.h>
%}
 -  Οι κανόνες ορίζουν ενέργειες που αντιστοιχούν σε κανονικές εκφράσεις (ΚΕ)
της εισόδου με τη σύνταξη:
pattern action.
όπου pattern είναι μια ΚΕ και action κώδικας σε C.
 -  Παράδειγμα:
("hi")*		printf("hi or hihi or hihihi ...\n");
DIGIT		printf("Read one digit\n");
 -  Τέλος ο κώδικας χρήστη αντιγράφεται ως έχει στον παραγόμενο κώδικα.