// Test of newline behavior of StreamTokenizer.
/*************************************************************************
/* This program is free software; you can redistribute it and/or modify
/* it under the terms of the GNU General Public License as published
/* by the Free Software Foundation, either version 2 of the License, or
/* (at your option) any later version.
/*
/* This program is distributed in the hope that it will be useful, but
/* WITHOUT ANY WARRANTY; without even the implied warranty of
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
/* GNU General Public License for more details.
/*
/* You should have received a copy of the GNU General Public License
/* along with this program; if not, write to the Free Software Foundation
/* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307 USA
/*************************************************************************/
// Tags: JDK1.1
package gnu.testlet.wonka.io.StreamTokenizer;
import java.io.*;
import gnu.testlet.Testlet;
import gnu.testlet.TestHarness;
public class newline implements Testlet
{
public static void tokenize (TestHarness harness,
String input,
int[] expected,
StreamTokenizer st)
{
harness.checkPoint ("Test of input: " + input);
try
{
int tt;
int i = 0;
while ((tt = st.nextToken ()) != StreamTokenizer.TT_EOF)
{
if (i >= expected.length)
harness.fail ("not enough tokens");
else
harness.check (tt, expected[i]);
++i;
}
harness.check (i, expected.length);
}
catch (Throwable _)
{
harness.debug (_);
harness.fail ("Exception caught");
}
}
public void test (TestHarness harness)
{
String input = "foo\nbar\r\njoe\rzardoz";
StringReader sr = new StringReader (input);
int[] expected = new int[7];
expected[0] = StreamTokenizer.TT_WORD;
expected[1] = StreamTokenizer.TT_EOL;
expected[2] = StreamTokenizer.TT_WORD;
expected[3] = StreamTokenizer.TT_EOL;
expected[4] = StreamTokenizer.TT_WORD;
expected[5] = StreamTokenizer.TT_EOL;
expected[6] = StreamTokenizer.TT_WORD;
StreamTokenizer st = new StreamTokenizer (sr);
st.eolIsSignificant (true);
tokenize (harness, input, expected, st);
input = "\"foo\\\nbar\" after";
sr = new StringReader (input);
st = new StreamTokenizer (sr);
expected = new int[2];
expected[0] = (int) '"';
expected[1] = StreamTokenizer.TT_WORD;
tokenize (harness, input, expected, st);
}
}