in the _3gpp_common_fm.yang file (attached) there is a nested group ThresholdInfoGrp that uses another nested group ThresholdPackGrp. In essense we have the following:
grouping AlarmRecordGrp {
leaf alarmId {
type string;
}
grouping ThresholdPackGrp {
leaf thresholdLevel {
type string;
}
leaf thresholdValue {
type string;
}
}
grouping ThresholdInfoGrp {
leaf measurementType {
type string;
}
uses ThresholdPackGrp;
}
list thresholdInfo {
uses ThresholdInfoGrp;
}
}
It seems the fact the groupings are nested (i.e. grouping inside a grouping) makes the serializatin fail as shown in the stacktrace
_3gpp-common-fm.zip
below:
# yt eyang-preprocessor --files _3gpp-common-fm2.yang --module-dirs .
java.lang.RuntimeException: No EObjectDescription could be found in Scope GroupingRef.node for Module'_3gpp-common-fm2'.substatements[5]->Grouping'AlarmRecordGrp'.substatements[1]->Grouping'ThresholdPackGrp'
Semantic Object: Module'_3gpp-common-fm2'.substatements[5]->Grouping'AlarmRecordGrp'.substatements[2]->Grouping'ThresholdInfoGrp'.substatements[1]->Uses.grouping->GroupingRef
URI: file:/home/ericsson/src/ericsson/ADPPRG-38013/_3gpp-common-fm2.yang
EStructuralFeature: yang::GroupingRef.node
at org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic$ExceptionThrowingAcceptor.accept(ISerializationDiagnostic.java:131)
at org.eclipse.xtext.serializer.tokens.CrossReferenceSerializer.getCrossReferenceNameFromScope(CrossReferenceSerializer.java:138)
at io.typefox.yang.resource.YangCrossReferenceSerializer.getCrossReferenceNameFromScope(YangCrossReferenceSerializer.java:148)
at io.typefox.yang.resource.YangCrossReferenceSerializer.serializeCrossRef(YangCrossReferenceSerializer.java:116)
at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.getToken(SequenceFeeder.java:482)
at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.accept(SequenceFeeder.java:239)
at io.typefox.yang.serializer.YangSemanticSequencer.sequence_GroupingRef(YangSemanticSequencer.java:1122)
at io.typefox.yang.serializer.YangSemanticSequencer.sequence(YangSemanticSequencer.java:238)
at org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer.createSequence(AbstractSemanticSequencer.java:67)
at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptEObjectRuleCall(SequenceFeeder.java:326)
at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptRuleCall(SequenceFeeder.java:353)
at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.accept(SequenceFeeder.java:247)
at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.accept(BacktrackingSemanticSequencer.java:451)
at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:511)
at io.typefox.yang.serializer.YangSemanticSequencer.sequence_StatementEnd_Uses(YangSemanticSequencer.java:1856)
at io.typefox.yang.serializer.YangSemanticSequencer.sequence(YangSemanticSequencer.java:411)
at org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer.createSequence(AbstractSemanticSequencer.java:67)
at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptEObjectRuleCall(SequenceFeeder.java:326)
at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptRuleCall(SequenceFeeder.java:353)
at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.accept(SequenceFeeder.java:264)
at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.accept(BacktrackingSemanticSequencer.java:444)
...
Hello,
in the _3gpp_common_fm.yang file (attached) there is a nested group ThresholdInfoGrp that uses another nested group ThresholdPackGrp. In essense we have the following:
It seems the fact the groupings are nested (i.e. grouping inside a grouping) makes the serializatin fail as shown in the stacktrace _3gpp-common-fm.zip
below:
Any idea how to fix?
Thanks, Andreas