<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>t027eof</title>

<!-- ANTLR includes -->
<script type="text/javascript" src="../../lib/antlr3-all.js"></script>
<script type="text/javascript" src="t027eof.js"></script>

<!-- JsUnit include -->
<script type="text/javascript" src="../jsunit/app/jsUnitCore.js"></script>

<!-- Test Code -->
<script type="text/javascript">
    function testValid1() {
        var stream = new org.antlr.runtime.ANTLRStringStream(" \u0000"),
            lexer = new t027eof(stream),
            token;

        token = lexer.nextToken();
        assertEquals(token.getType(), lexer.SPACE);

        token = lexer.nextToken();
        assertEquals(token.getType(), lexer.END);
    }
</script>

</head>
<body>
    <h1>t027eof</h1>
</body>
</html>
