1/* $NetBSD$ */ 2 3/* 4 * This file is part of flex. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * Neither the name of the University nor the names of its contributors 17 * may be used to endorse or promote products derived from this software 18 * without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 21 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 22 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * PURPOSE. 24 */ 25 26/* TEST scanner. 27 Basic non-reentrant scanner. 28 Compile with: flex scanner.l 29 30 Sample Input: 31 # this is a comment 32 foo = true 33 bar = "string value" 34 integer = 43 35*/ 36%{ 37#include "config.h" 38%} 39 40%option prefix="test" outfile="scanner.c" 41%option nounput noyywrap noyylineno warn nodefault 42 43IDENT [[:alnum:]_-] 44WS [[:blank:]] 45%% 46 47^{IDENT}+{WS}*={WS}*(true|false){WS}*\r?\n { return 100;} 48^{IDENT}+{WS}*={WS}*\"[^\"\n\r]*\"{WS}*\r?\n { return 101;} 49^{IDENT}+{WS}*={WS}*[[:digit:]]+{WS}*\r?\n { return 102;} 50^{WS}*#.*\r?\n { } 51^{WS}*\r?\n { } 52.|\n { fprintf(stderr,"Invalid line.\n"); exit(-1);} 53 54%% 55 56int main(void); 57 58int main () 59{ 60 yyin = stdin; 61 yyout = stdout; 62 while( yylex() ) 63 { 64 } 65 printf("TEST RETURNING OK.\n"); 66 return 0; 67} 68 69