Initial commit
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
/* **********************************************
|
||||
* Duale Hochschule Baden-Württemberg Karlsruhe
|
||||
* Prof. Dr. Jörn Eisenbiegler
|
||||
*
|
||||
* Vorlesung Übersetzerbau
|
||||
* Praxis AS-Scanner mit JFlex
|
||||
* - Testfall-Utility
|
||||
*
|
||||
* **********************************************
|
||||
*/
|
||||
|
||||
package de.dhbw.compiler.jflexasscanner;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.io.StringReader;
|
||||
|
||||
public abstract class TokenStreamTest {
|
||||
|
||||
protected void testTokenList(String in, boolean convert, Token... TokenList) throws Exception {
|
||||
JFlexASScanner scanner = new JFlexASScanner(new StringReader(in));
|
||||
Token myToken;
|
||||
|
||||
for (Token expected : TokenList) {
|
||||
myToken = scanner.nextToken();
|
||||
assertEquals("Expect Token "+expected.toString()+". Error in type.",
|
||||
expected.getType(), myToken.getType());
|
||||
assertEquals("Expect Token "+expected.toString()+". Error in text.",
|
||||
expected.getText(), myToken.getText());
|
||||
assertEquals("Expect Token "+expected.toString()+". Error in line.",
|
||||
expected.getLine(), myToken.getLine());
|
||||
assertEquals("Expect Token "+expected.toString()+". Error in column.",
|
||||
expected.getColumn(), myToken.getColumn());
|
||||
if (convert) {
|
||||
switch (myToken.getType()) {
|
||||
case Token.NUM:
|
||||
int intValue = Integer.parseInt(expected.getText());
|
||||
assertEquals("Expected Token value "+intValue,
|
||||
intValue,((NumToken)myToken).getValue());
|
||||
break;
|
||||
case Token.FRAC:
|
||||
double doubleValue = Double.parseDouble(expected.getText().replace("^", "e"));
|
||||
assertEquals("Expected Token value "+doubleValue,
|
||||
doubleValue,((FracToken)myToken).getValue(), doubleValue*0.0000001);
|
||||
break;
|
||||
case Token.STR:
|
||||
String stringValue = expected.getText().replace("\\\"", "\"");
|
||||
stringValue = stringValue.substring(1,stringValue.length()-1);
|
||||
assertEquals("Expected Token value "+stringValue,
|
||||
stringValue,((StringToken)myToken).getValue());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
myToken = scanner.nextToken();
|
||||
assertEquals("Expected End of File (EOF), read " + myToken.toString() + ".", Token.EOF, myToken.getType());
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user