Rambler's Top100

Исходный файл Const (все изменения выделены):
/**Для тех, кто не знает, как компилировать такой файл:
java JLex.Main Const --> получится файл Const.java
javac Const.java --> как обычно получится Const.class
java Const file.name --> где file.name - имя файла, в котором нужно искать константы.
*/

/**
 * Simple Example on Using JLex -- Java Version of LEX
 */
import java.io.*;
import java.util.Vector;
class Yytoken extends Object {
    public int code;
    // To do...
}
%%
%full
%{
    int w = 0;  // Number of words
    int c = 0;  // Number of characters
    int l = 0;  // Number of lines
//
//-------------------------------------------------------------
    int v = 0;  // Number of consts
//-------------------------------------------------------------
//
    Vector vec = new Vector();
    public static void main(String args[]) {
        Reader reader;
        try {
            if (args.length == 0) {
                reader = new InputStreamReader(System.in);
            } else {
                reader = new FileReader(args[0]);
            }
            Yylex scanner = new Yylex(reader);
            scanner.yylex();
            System.out.println(
                "Words: " + scanner.w +
                ", characters: " + scanner.c +
                ", lines: " + scanner.l
            );
//
//-----------------------------------------------------------
            System.out.println("Number of const: " + scanner.v);
            System.out.print("Const: ");
            for (int i = 0; i < scanner.v; i++) {
                 System.out.print(scanner.vec.elementAt(i) + "    ");
            }
//-----------------------------------------------------------
//
        } catch (IOException e) {
            System.out.println("I/O error: " + e);
        }
    }
%}
LETTER          [A-Za-z]
SIGN            ((\+|\-)?)
EXP             ((e|E)(\+|\-)?([0-9]+))
INTEGER         ((\+|\-)?([0-9]+))
DOUBLE          (\+|\-)?(([0-9]+\.[0-9]*)|(\.[0-9]+))
%%
({DOUBLE}{EXP}?)|({SIGN}{EXP})|({INTEGER}{EXP}) {v++; vec.addElement(yytext()); c+=yytext().length();}
{LETTER}+                           { w++; c += yytext().length(); }
\r\n                                { c++; l++; }
\n                                  { c++; l++; }
.                                   { c++; }
Хостинг от uCoz