Search in sources :

Example 6 with PInvariant

use of de.be4.eventbalg.core.parser.node.PInvariant 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());
}
Also used : StringTokenizer(java.util.StringTokenizer) Start(de.be4.eventbalg.core.parser.node.Start) PInvariant(de.be4.eventbalg.core.parser.node.PInvariant) AInvariant(de.be4.eventbalg.core.parser.node.AInvariant) TComment(de.be4.eventbalg.core.parser.node.TComment) AMachineParseUnit(de.be4.eventbalg.core.parser.node.AMachineParseUnit) Test(org.junit.Test)

Example 7 with PInvariant

use of de.be4.eventbalg.core.parser.node.PInvariant in project probparsers by bendisposto.

the class CommentTest method testCommentPredicates2.

@Test
public void testCommentPredicates2() throws Exception {
    final Start rootNode = parseInput("machine CommentPredicates2 invariants\n @inv0 asdf\n @inv1 asdf\n//MyComment\nend", 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("inv0", invariant.getName().getText());
    assertEquals("asdf", invariant.getPredicate().getText());
    // correct comment content, i.e., is whitespace in the beginning
    // omitted?
    invariant = (AInvariant) invariants.get(1);
    final LinkedList<TComment> comments = invariant.getComments();
    assertEquals(1, comments.size());
    assertEquals("MyComment", comments.get(0).getText());
    assertEquals("inv1", invariant.getName().getText());
    assertEquals("asdf", invariant.getPredicate().getText());
}
Also used : Start(de.be4.eventbalg.core.parser.node.Start) PInvariant(de.be4.eventbalg.core.parser.node.PInvariant) AInvariant(de.be4.eventbalg.core.parser.node.AInvariant) TComment(de.be4.eventbalg.core.parser.node.TComment) AMachineParseUnit(de.be4.eventbalg.core.parser.node.AMachineParseUnit) Test(org.junit.Test)

Example 8 with PInvariant

use of de.be4.eventbalg.core.parser.node.PInvariant in project probparsers by bendisposto.

the class CommentTest method testCommentPredicates2.

@Test
public void testCommentPredicates2() throws Exception {
    final Start rootNode = parseInput("machine CommentPredicates2 invariants\n @inv0 asdf\n @inv1 asdf\n//MyComment\nend", 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("inv0", invariant.getName().getText());
    assertEquals("asdf", invariant.getPredicate().getText());
    // correct comment content, i.e., is whitespace in the beginning
    // omitted?
    invariant = (AInvariant) invariants.get(1);
    final LinkedList<TComment> comments = invariant.getComments();
    assertEquals(1, comments.size());
    assertEquals("MyComment", comments.get(0).getText());
    assertEquals("inv1", invariant.getName().getText());
    assertEquals("asdf", invariant.getPredicate().getText());
}
Also used : Start(de.be4.eventb.core.parser.node.Start) PInvariant(de.be4.eventb.core.parser.node.PInvariant) AInvariant(de.be4.eventb.core.parser.node.AInvariant) TComment(de.be4.eventb.core.parser.node.TComment) AMachineParseUnit(de.be4.eventb.core.parser.node.AMachineParseUnit) Test(org.junit.Test)

Example 9 with PInvariant

use of de.be4.eventbalg.core.parser.node.PInvariant 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());
}
Also used : Start(de.be4.eventb.core.parser.node.Start) PInvariant(de.be4.eventb.core.parser.node.PInvariant) AInvariant(de.be4.eventb.core.parser.node.AInvariant) TComment(de.be4.eventb.core.parser.node.TComment) AMachineParseUnit(de.be4.eventb.core.parser.node.AMachineParseUnit) Test(org.junit.Test)

Example 10 with PInvariant

use of de.be4.eventbalg.core.parser.node.PInvariant 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());
}
Also used : StringTokenizer(java.util.StringTokenizer) Start(de.be4.eventb.core.parser.node.Start) PInvariant(de.be4.eventb.core.parser.node.PInvariant) AInvariant(de.be4.eventb.core.parser.node.AInvariant) TComment(de.be4.eventb.core.parser.node.TComment) AMachineParseUnit(de.be4.eventb.core.parser.node.AMachineParseUnit) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)10 AInvariant (de.be4.eventb.core.parser.node.AInvariant)5 AMachineParseUnit (de.be4.eventb.core.parser.node.AMachineParseUnit)5 PInvariant (de.be4.eventb.core.parser.node.PInvariant)5 Start (de.be4.eventb.core.parser.node.Start)5 AInvariant (de.be4.eventbalg.core.parser.node.AInvariant)5 AMachineParseUnit (de.be4.eventbalg.core.parser.node.AMachineParseUnit)5 PInvariant (de.be4.eventbalg.core.parser.node.PInvariant)5 Start (de.be4.eventbalg.core.parser.node.Start)5 TComment (de.be4.eventb.core.parser.node.TComment)3 TComment (de.be4.eventbalg.core.parser.node.TComment)3 StringTokenizer (java.util.StringTokenizer)2