[[Property:title|eiffel_scan console input]]
[[Property:weight|2]]
[[Property:uuid|ce4da828-6772-e1c3-0917-82f6669cccf9]]
<code>
-- Example of a lexical analyzer based on the Eiffel syntax.
-- The analyzer itself is found in the file ``eiffel_lex'', which
-- is created according to the file  ``eiffel_token'' if not
-- previously built and stored.

class EIFFEL_SCAN

inherit

    SCANNING
        rename
            make as scanning_make
        end;

    ARGUMENTS
        undefine
            copy, consistent, is_equal, setup
        end

create

    make

feature

    make
            -- Create a lexical analyser for Eiffel if none,
            -- then use it to analyze the file of name
            -- `file_name'.
        local
            file_name: STRING;
        do
            if argument_count < 1 then
                io.error.putstring ("Usage: eiffel_scan eiffel_class_file.e%N")
            else
                file_name := argument (1);
                scanning_make;
                build ("eiffel_lex", "eiffel_regular");
                io.putstring ("Scanning file `");
                io.putstring (file_name);
                io.putstring ("'.%N");
                analyze (file_name)
            end
        end -- make

end -- class EIFFEL_SCAN
		</code>




