Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,950 changes: 981 additions & 969 deletions compiler/lib/src/main/resources/META-INF/native-image/reflect-config.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ trait BasicUseAnalyzer extends TypeExpressionAnalyzer {
aNode: Ast.Annotated[AstNode[Ast.SpecTlmPacketSet]]
) = for {
a <- super.specTlmPacketSetAnnotatedNode(a, aNode)
a <- visitList(a, aNode._2.data.omitted, tlmChannelIdentifierNode)
a <- visitList(a, aNode._2.data.omitted, tlmPacketMember)
} yield a

override def specInterfaceImportAnnotatedNode(a: Analysis, node: Ast.Annotated[AstNode[Ast.SpecImport]]) = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,9 @@ object TlmPacketSet {
(a: Analysis, d: Dictionary, t: Topology)
(tpg: TlmPacketSet):
Result.Result[TlmPacketSet] = {
val nodeList = tpg.aNode._2.data.omitted
val nodeList = tpg.aNode._2.data.omitted.collect {
case Ast.TlmPacketMember.TlmChannelIdentifier(node) => node
}
for {
idList <- Result.map(
nodeList,
Expand Down
2 changes: 1 addition & 1 deletion compiler/lib/src/main/scala/ast/Ast.scala
Original file line number Diff line number Diff line change
Expand Up @@ -818,7 +818,7 @@ object Ast {
final case class SpecTlmPacketSet(
name: Ident,
members: List[TlmPacketSetMember],
omitted: List[AstNode[TlmChannelIdentifier]]
omitted: List[TlmPacketMember]
)

/** Topology port specifier */
Expand Down
10 changes: 7 additions & 3 deletions compiler/lib/src/main/scala/ast/TopologyStateTransformer.scala
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,14 @@ trait TopologyStateTransformer extends AstStateTransformer {
) = {
val (pre, node, post) = aNode
val Ast.SpecTlmPacketSet(name, members, omitted) = node.data
for { result <- transformList(s, members, tlmPacketSetMember) }
for {
result <- transformList(s, members, tlmPacketSetMember)
omittedResult <- transformList(result._1, omitted, tlmPacketMember)
}
yield {
val (s1, members1) = result
val defModule = Ast.SpecTlmPacketSet(name, members1.flatten, omitted)
val (_, members1) = result
val (s1, omitted1) = omittedResult
val defModule = Ast.SpecTlmPacketSet(name, members1.flatten, omitted1.flatten)
val node1 = AstNode.create(defModule, node.id)
(s1, (pre, node1, post))
}
Expand Down
2 changes: 1 addition & 1 deletion compiler/lib/src/main/scala/codegen/AstWriter.scala
Original file line number Diff line number Diff line change
Expand Up @@ -715,7 +715,7 @@ object AstWriter extends AstVisitor with LineUtils {
),
List.concat(
lines("omitted"),
data.omitted.flatMap(applyToData(tlmChannelIdentifier)).map(indentIn)
data.omitted.flatMap(tlmPacketMember).map(indentIn)
)
).map(indentIn)
)
Expand Down
2 changes: 1 addition & 1 deletion compiler/lib/src/main/scala/codegen/FppWriter.scala
Original file line number Diff line number Diff line change
Expand Up @@ -736,7 +736,7 @@ object FppWriter extends AstVisitor with LineUtils {
)
).
joinNoIndent (" omit ") (
addBracesIfNonempty(data.omitted.flatMap(applyToData(tlmChannelId)))
addBracesIfNonempty(data.omitted.flatMap(tlmPacketMember))
)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,13 +98,13 @@ object TlmPacketSetXmlFppWriter extends LineUtils {

/** Extracts omitted channels */
def omittedChannelList(file: XmlFppWriter.File):
Result.Result[List[AstNode[Ast.TlmChannelIdentifier]]] =
Result.Result[List[Ast.TlmPacketMember]] =
for {
child <- file.getSingleChild(file.elem, "ignore")
channels <- Right(child \ "channel")
channelIds <- Result.map(channels.toList, tlmChannelIdentifierNode(file, _))
members <- Result.map(channels.toList, tlmPacketMember(file, _))
}
yield channelIds
yield members

/** Translates the telemetry packet set */
def specTlmPacketSetAnnotated(file: XmlFppWriter.File):
Expand Down
7 changes: 2 additions & 5 deletions compiler/lib/src/main/scala/syntax/Parser.scala
Original file line number Diff line number Diff line change
Expand Up @@ -251,12 +251,9 @@ object Parser extends Parsers {
}

def specTlmPacketSet: Parser[Ast.SpecTlmPacketSet] = {
def omitted: Parser[List[AstNode[Ast.TlmChannelIdentifier]]] = {
def omitted: Parser[List[Ast.TlmPacketMember]] = {
opt(
omit ~>! lbrace ~>! elementSequence(
node(tlmChannelIdentifier),
comma
) <~! rbrace
omit ~>! lbrace ~>! tlmPacketMembers <~! rbrace
) ^^ {
case Some(elements) => elements
case None => Nil
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c2.T
20 changes: 20 additions & 0 deletions compiler/tools/fpp-check/test/tlm_packets/omit_include.fpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
deployment topology T1 {

instance c1
instance c2
instance c3
instance c4

telemetry packets P1 {

packet P1 id 0 group 0 {
c1.T
include "included_channels.fppi"
}

} omit {
c3.T
include "omitted_channels.fppi"
}

}
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
c4.T
6 changes: 6 additions & 0 deletions compiler/tools/fpp-check/test/tlm_packets/tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ negative_id
negative_level
not_deployment_topology
ok
omit_include
omit_instance_not_defined
omit_instance_not_in_topology
"
Expand All @@ -24,3 +25,8 @@ ok()
{
run_test instances.fpp ok
}

omit_include()
{
run_test instances.fpp omit_include
}
1 change: 1 addition & 0 deletions compiler/tools/fpp-format/test/include.ref.txt
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,7 @@ module DefinitionsAndSpecifiers {

} omit {
i3.c3
i6.c6
} @< Telemetry packet group

@ Topology port specifier
Expand Down
1 change: 1 addition & 0 deletions compiler/tools/fpp-format/test/no_include.ref.txt
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,7 @@ module DefinitionsAndSpecifiers {

} omit {
i3.c3
include "omitted.fppi"
} @< Telemetry packet group

@ Topology port specifier
Expand Down
1 change: 1 addition & 0 deletions compiler/tools/fpp-syntax/test/omitted.fppi
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
i6.c6
5 changes: 4 additions & 1 deletion compiler/tools/fpp-syntax/test/syntax-ast.ref.txt
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,10 @@ def module
file packet.fppi
@< Include specifier
omitted
qual ident i3.c3
tlm channel identifier
qual ident i3.c3
spec include
file omitted.fppi
@< Telemetry packet group
@ Topology port specifier
spec top port
Expand Down
5 changes: 4 additions & 1 deletion compiler/tools/fpp-syntax/test/syntax-include-ast.ref.txt
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,10 @@ def module
qual ident i5.c5
@< Included packet
omitted
qual ident i3.c3
tlm channel identifier
qual ident i3.c3
tlm channel identifier
qual ident i6.c6
@< Telemetry packet group
@ Topology port specifier
spec top port
Expand Down
5 changes: 4 additions & 1 deletion compiler/tools/fpp-syntax/test/syntax-stdin.ref.txt
Original file line number Diff line number Diff line change
Expand Up @@ -399,7 +399,10 @@ def module
qual ident i5.c5
@< Included packet
omitted
qual ident i3.c3
tlm channel identifier
qual ident i3.c3
tlm channel identifier
qual ident i6.c6
@< Telemetry packet group
@ Topology port specifier
spec top port
Expand Down
1 change: 1 addition & 0 deletions compiler/tools/fpp-syntax/test/syntax.fpp
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@ module DefinitionsAndSpecifiers {

} omit {
i3.c3
include "omitted.fppi"
}
@< Telemetry packet group

Expand Down
114 changes: 63 additions & 51 deletions compiler/tools/fpp-to-json/test/syntaxOnly.ref.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1964,72 +1964,84 @@
],
"omitted" : [
{
"AstNode" : {
"data" : {
"componentInstance" : {
"AstNode" : {
"data" : {
"Unqualified" : {
"name" : "j"
"TlmChannelIdentifier" : {
"node" : {
"AstNode" : {
"data" : {
"componentInstance" : {
"AstNode" : {
"data" : {
"Unqualified" : {
"name" : "j"
}
},
"id" : 918
}
},
"id" : 918
}
},
"channelName" : {
"AstNode" : {
"data" : "T",
"id" : 917
}
"channelName" : {
"AstNode" : {
"data" : "T",
"id" : 917
}
}
},
"id" : 919
}
},
"id" : 919
}
}
},
{
"AstNode" : {
"data" : {
"componentInstance" : {
"AstNode" : {
"data" : {
"Unqualified" : {
"name" : "k"
"TlmChannelIdentifier" : {
"node" : {
"AstNode" : {
"data" : {
"componentInstance" : {
"AstNode" : {
"data" : {
"Unqualified" : {
"name" : "k"
}
},
"id" : 922
}
},
"id" : 922
}
},
"channelName" : {
"AstNode" : {
"data" : "T",
"id" : 921
}
"channelName" : {
"AstNode" : {
"data" : "T",
"id" : 921
}
}
},
"id" : 923
}
},
"id" : 923
}
}
},
{
"AstNode" : {
"data" : {
"componentInstance" : {
"AstNode" : {
"data" : {
"Unqualified" : {
"name" : "l"
"TlmChannelIdentifier" : {
"node" : {
"AstNode" : {
"data" : {
"componentInstance" : {
"AstNode" : {
"data" : {
"Unqualified" : {
"name" : "l"
}
},
"id" : 926
}
},
"id" : 926
}
},
"channelName" : {
"AstNode" : {
"data" : "T",
"id" : 925
}
"channelName" : {
"AstNode" : {
"data" : "T",
"id" : 925
}
}
},
"id" : 927
}
},
"id" : 927
}
}
}
]
Expand Down
38 changes: 21 additions & 17 deletions compiler/tools/fpp-to-json/test/telemetryPackets.ref.txt
Original file line number Diff line number Diff line change
Expand Up @@ -526,26 +526,30 @@
],
"omitted" : [
{
"AstNode" : {
"data" : {
"componentInstance" : {
"AstNode" : {
"data" : {
"Unqualified" : {
"name" : "c2"
"TlmChannelIdentifier" : {
"node" : {
"AstNode" : {
"data" : {
"componentInstance" : {
"AstNode" : {
"data" : {
"Unqualified" : {
"name" : "c2"
}
},
"id" : 110
}
},
"id" : 110
}
},
"channelName" : {
"AstNode" : {
"data" : "T",
"id" : 109
}
"channelName" : {
"AstNode" : {
"data" : "T",
"id" : 109
}
}
},
"id" : 111
}
},
"id" : 111
}
}
}
]
Expand Down
Loading