Opened 16 years ago

Closed 16 years ago

#219 closed defect (fixed)

Cannot use -> on left hand of assignment in .mmp files

Reported by: dfix Owned by: Stephen Siegel
Priority: minor Milestone: Release 1.0
Component: examples Version: 1.0
Keywords: arrow operator, examples, Node Cc:

Description

Something like:
Node a;
Node* p = &a;
p->field = ...;
will result in an error.
However, the arrow operator seems to work in any other situation.

java.lang.NullPointerException

at edu.udel.cis.vsl.tass.front.minimp.ModelBuilder.processAST(ModelBuilder.java:291)
at edu.udel.cis.vsl.tass.front.minimp.ModelBuilder.buildModel(ModelBuilder.java:286)
at edu.udel.cis.vsl.tass.front.minimp.ModelExtractor.extract(ModelExtractor.java:30)
at edu.udel.cis.vsl.tass.front.minimp.ModelExtractor.extractModel(ModelExtractor.java:54)
at linkedList.LinkedListTest.testVerifyLinkedListSimple(LinkedListTest.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

edu.udel.cis.vsl.tass.front.minimp.parser.SyntaxError: Syntax error found in file: linkedListSimple.mmp, on line: 16:1
Left value expected in assignment.

at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.reportSyntaxError(TreeParser.java:2715)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processAssignExpr(TreeParser.java:1296)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processExpr(TreeParser.java:1285)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processExprStmt(TreeParser.java:2539)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processStatement(TreeParser.java:2037)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processStmtList(TreeParser.java:1269)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processFunctionBody(TreeParser.java:1244)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processFunction(TreeParser.java:1141)
at edu.udel.cis.vsl.tass.front.minimp.parser.TreeParser.processAST(TreeParser.java:246)
at edu.udel.cis.vsl.tass.front.minimp.ModelExtractor.extract(ModelExtractor.java:29)
at edu.udel.cis.vsl.tass.front.minimp.ModelExtractor.extractModel(ModelExtractor.java:54)
at linkedList.LinkedListTest.testVerifyLinkedListSimple(LinkedListTest.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Change History (2)

comment:1 by Stephen Siegel, 16 years ago

Owner: set to Stephen Siegel
Status: newaccepted

Is there a JUnit test demonstrating this defect? If not, please add one.

comment:2 by Stephen Siegel, 16 years ago

Resolution: fixed
Status: acceptedclosed

This is fixed, but another error was revealed.
Also, the example test had some problems with undefined values because no objects were every allocated.
The other error has to do with the resolution of pointer base types, which does not always take place, in ModelBuilder.

Note: See TracTickets for help on using tickets.