use of de.be4.eventb.core.parser.node.AMachineParseUnit in project probparsers by bendisposto.
the class CommentTest method testInvariantsAndMultiComments.
@Test
public void testInvariantsAndMultiComments() throws BException {
final String input = "machine InvariantsAndMultiComments invariants\n" + "@inv1 1=1\n" + "@inv2 2=2\n" + "/*inv2\ncomment*/\n" + "end";
final Start rootNode = parseInput(input, false);
final AMachineParseUnit parseUnit = (AMachineParseUnit) rootNode.getPParseUnit();
final LinkedList<PInvariant> invariants = parseUnit.getInvariants();
assertEquals(2, invariants.size());
AInvariant invariant = (AInvariant) invariants.get(0);
assertEquals(0, invariant.getComments().size());
assertEquals("inv1", invariant.getName().getText());
assertEquals("1=1", invariant.getPredicate().getText());
invariant = (AInvariant) invariants.get(1);
final LinkedList<TComment> comments = invariant.getComments();
assertEquals(1, comments.size());
assertEquals("inv2\ncomment", comments.get(0).getText());
assertEquals("inv2", invariant.getName().getText());
assertEquals("2=2", invariant.getPredicate().getText());
}
use of de.be4.eventb.core.parser.node.AMachineParseUnit in project probparsers by bendisposto.
the class CommentTest method testMultiLineComment.
@Test
public void testMultiLineComment() throws Exception {
final Start rootNode = parseInput("machine MultiLineComment invariants @inv1 asdf\n/* First line\n Second line*/\nend", false);
final AMachineParseUnit parseUnit = (AMachineParseUnit) rootNode.getPParseUnit();
final LinkedList<PInvariant> invariants = parseUnit.getInvariants();
final AInvariant invariant = (AInvariant) invariants.get(0);
// correct comment content?
final LinkedList<TComment> comments = invariant.getComments();
assertEquals(1, comments.size());
final StringTokenizer tokenizer = new StringTokenizer(comments.get(0).getText(), "\n\r");
assertEquals(2, tokenizer.countTokens());
assertEquals("First line", tokenizer.nextToken());
assertEquals(" Second line", tokenizer.nextToken());
// correct invariant label?
assertEquals("inv1", invariant.getName().getText());
// correct string representation for predicate?
assertEquals("asdf", invariant.getPredicate().getText());
}
use of de.be4.eventb.core.parser.node.AMachineParseUnit in project probparsers by bendisposto.
the class CommentTest method testMultipleComments1.
@Test
public void testMultipleComments1() throws Exception {
final Start rootNode = parseInput("machine MultipleComments1" + "// line1\n" + "/* line2\nline3*/" + "// line4\n" + "\nend", false);
final AMachineParseUnit parseUnit = (AMachineParseUnit) rootNode.getPParseUnit();
final LinkedList<TComment> comments = parseUnit.getComments();
assertEquals(3, comments.size());
assertEquals("line1", comments.get(0).getText());
assertEquals("line2\nline3", comments.get(1).getText());
assertEquals("line4", comments.get(2).getText());
}
use of de.be4.eventb.core.parser.node.AMachineParseUnit in project probparsers by bendisposto.
the class SourcePositionsTest method testGetEndLine.
@Test
public void testGetEndLine() throws Exception {
final Start root = parser.parse("machine\nTestMachine\n\nvariables\nx\n\nend", false);
final AMachineParseUnit parseUnit = (AMachineParseUnit) root.getPParseUnit();
assertEquals(7, ((PositionedNode) parseUnit).getEndPos().getLine());
final LinkedList<PVariable> variables = parseUnit.getVariables();
assertEquals(5, ((PositionedNode) variables.get(0)).getEndPos().getLine());
}
Aggregations