From e42a6a0db86345b2670f3965c166dd64cac59e67 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 09:49:44 -0700
Subject: [PATCH 001/110] Unify all FPP tools
---
compiler/build.sbt | 76 +--------------
compiler/install | 41 ++++----
.../tools/fpp-depend/project/build.properties | 1 -
.../tools/fpp-format/project/build.properties | 1 -
.../fpp-from-xml/project/build.properties | 1 -
.../fpp-locate-defs/project/build.properties | 1 -
.../fpp-locate-uses/project/build.properties | 1 -
.../tools/fpp-syntax/project/build.properties | 1 -
.../tools/fpp-to-cpp/project/build.properties | 1 -
.../fpp-to-json/project/build.properties | 1 -
.../tools/fpp-to-xml/project/build.properties | 1 -
.../project/build.properties | 0
.../src/main/scala/fpp-check.scala | 2 +-
.../src/main/scala/fpp-depend.scala | 2 +-
.../src/main/scala/fpp-filenames.scala | 2 +-
.../src/main/scala/fpp-format.scala | 4 +-
.../src/main/scala/fpp-from-xml.scala | 2 +-
.../src/main/scala/fpp-locate-defs.scala | 2 +-
.../src/main/scala/fpp-locate-uses.scala | 2 +-
.../src/main/scala/fpp-syntax.scala | 4 +-
.../src/main/scala/fpp-to-cpp.scala | 2 +-
.../src/main/scala/fpp-to-dict.scala | 4 +-
.../src/main/scala/fpp-to-json.scala | 4 +-
.../src/main/scala/fpp-to-layout.scala | 4 +-
.../src/main/scala/fpp-to-xml.scala | 2 +-
compiler/tools/fpp/src/main/scala/fpp.scala | 96 +++++++++++++++++++
26 files changed, 139 insertions(+), 119 deletions(-)
delete mode 100644 compiler/tools/fpp-depend/project/build.properties
delete mode 100644 compiler/tools/fpp-format/project/build.properties
delete mode 100644 compiler/tools/fpp-from-xml/project/build.properties
delete mode 100644 compiler/tools/fpp-locate-defs/project/build.properties
delete mode 100644 compiler/tools/fpp-locate-uses/project/build.properties
delete mode 100644 compiler/tools/fpp-syntax/project/build.properties
delete mode 100644 compiler/tools/fpp-to-cpp/project/build.properties
delete mode 100644 compiler/tools/fpp-to-json/project/build.properties
delete mode 100644 compiler/tools/fpp-to-xml/project/build.properties
rename compiler/tools/{fpp-check => fpp}/project/build.properties (100%)
rename compiler/tools/{fpp-check => fpp}/src/main/scala/fpp-check.scala (98%)
rename compiler/tools/{fpp-depend => fpp}/src/main/scala/fpp-depend.scala (99%)
rename compiler/tools/{fpp-filenames => fpp}/src/main/scala/fpp-filenames.scala (98%)
rename compiler/tools/{fpp-format => fpp}/src/main/scala/fpp-format.scala (96%)
rename compiler/tools/{fpp-from-xml => fpp}/src/main/scala/fpp-from-xml.scala (96%)
rename compiler/tools/{fpp-locate-defs => fpp}/src/main/scala/fpp-locate-defs.scala (97%)
rename compiler/tools/{fpp-locate-uses => fpp}/src/main/scala/fpp-locate-uses.scala (99%)
rename compiler/tools/{fpp-syntax => fpp}/src/main/scala/fpp-syntax.scala (96%)
rename compiler/tools/{fpp-to-cpp => fpp}/src/main/scala/fpp-to-cpp.scala (99%)
rename compiler/tools/{fpp-to-dict => fpp}/src/main/scala/fpp-to-dict.scala (98%)
rename compiler/tools/{fpp-to-json => fpp}/src/main/scala/fpp-to-json.scala (97%)
rename compiler/tools/{fpp-to-layout => fpp}/src/main/scala/fpp-to-layout.scala (97%)
rename compiler/tools/{fpp-to-xml => fpp}/src/main/scala/fpp-to-xml.scala (98%)
create mode 100644 compiler/tools/fpp/src/main/scala/fpp.scala
diff --git a/compiler/build.sbt b/compiler/build.sbt
index c7f5ecc12..cfc1c0dfc 100644
--- a/compiler/build.sbt
+++ b/compiler/build.sbt
@@ -29,85 +29,13 @@ lazy val root = (project in file("."))
.settings(settings)
.aggregate(
lib,
- fpp_check,
- fpp_depend,
- fpp_filenames,
- fpp_format,
- fpp_from_xml,
- fpp_locate_defs,
- fpp_locate_uses,
- fpp_syntax,
- fpp_to_cpp,
- fpp_to_json,
- fpp_to_xml,
- fpp_to_dict,
- fpp_to_layout
+ fpp
)
lazy val lib = project
.settings(settings)
-lazy val fpp_check = (project in file("tools/fpp-check"))
- .settings(settings)
- .dependsOn(lib)
- .enablePlugins(AssemblyPlugin)
-
-lazy val fpp_depend = (project in file("tools/fpp-depend"))
- .settings(settings)
- .dependsOn(lib)
- .enablePlugins(AssemblyPlugin)
-
-lazy val fpp_filenames = (project in file("tools/fpp-filenames"))
- .settings(settings)
- .dependsOn(lib)
- .enablePlugins(AssemblyPlugin)
-
-lazy val fpp_format = (project in file("tools/fpp-format"))
- .settings(settings)
- .dependsOn(lib)
- .enablePlugins(AssemblyPlugin)
-
-lazy val fpp_syntax = (project in file("tools/fpp-syntax"))
- .settings(settings)
- .dependsOn(lib)
- .enablePlugins(AssemblyPlugin)
-
-lazy val fpp_from_xml = (project in file("tools/fpp-from-xml"))
- .settings(settings)
- .dependsOn(lib)
- .enablePlugins(AssemblyPlugin)
-
-lazy val fpp_locate_defs = (project in file("tools/fpp-locate-defs"))
- .settings(settings)
- .dependsOn(lib)
- .enablePlugins(AssemblyPlugin)
-
-lazy val fpp_locate_uses = (project in file("tools/fpp-locate-uses"))
- .settings(settings)
- .dependsOn(lib)
- .enablePlugins(AssemblyPlugin)
-
-lazy val fpp_to_cpp = (project in file("tools/fpp-to-cpp"))
- .settings(settings)
- .dependsOn(lib)
- .enablePlugins(AssemblyPlugin)
-
-lazy val fpp_to_json = (project in file("tools/fpp-to-json"))
- .settings(settings)
- .dependsOn(lib)
- .enablePlugins(AssemblyPlugin)
-
-lazy val fpp_to_xml = (project in file("tools/fpp-to-xml"))
- .settings(settings)
- .dependsOn(lib)
- .enablePlugins(AssemblyPlugin)
-
-lazy val fpp_to_dict = (project in file("tools/fpp-to-dict"))
- .settings(settings)
- .dependsOn(lib)
- .enablePlugins(AssemblyPlugin)
-
-lazy val fpp_to_layout = (project in file("tools/fpp-to-layout"))
+lazy val fpp = (project in file("tools/fpp"))
.settings(settings)
.dependsOn(lib)
.enablePlugins(AssemblyPlugin)
diff --git a/compiler/install b/compiler/install
index b97ace9d6..322dc46a6 100755
--- a/compiler/install
+++ b/compiler/install
@@ -52,19 +52,19 @@ base=`basename $dest`
dest=$dir/$base
tools="
-fpp-check
-fpp-depend
-fpp-filenames
-fpp-format
-fpp-from-xml
-fpp-locate-defs
-fpp-locate-uses
-fpp-syntax
-fpp-to-cpp
-fpp-to-json
-fpp-to-xml
-fpp-to-dict
-fpp-to-layout
+check
+depend
+filenames
+format
+from-xml
+locate-defs
+locate-uses
+syntax
+to-cpp
+to-json
+to-xml
+to-dict
+to-layout
"
if git describe --tags --always > /dev/null 2>&1
@@ -91,13 +91,18 @@ sed -i.restore.bak -e "s/val v = .*/val v = \"[unknown version]\"/" \
mkdir -p $dest
+echo "Installing fpp at $dest"
+jar=`find tools/fpp -name "*$name*assembly*.jar" | grep "target/scala-$scala_version"`
+echo " $jar"
+cp $jar $dest/fpp.jar
+echo '#!/bin/sh
+'$java' -jar "`dirname $0`/'fpp'.jar" "$@"' > $dest/fpp
+chmod +x $dest/fpp
+
echo "Installing tools at $dest"
for tool in $tools
do
- jar=`find tools/$tool -name "*$name*assembly*.jar" | grep "target/scala-$scala_version"`
- echo " $jar"
- cp $jar $dest/$tool.jar
echo '#!/bin/sh
- '$java' -jar "`dirname $0`/'$tool'.jar" "$@"' > $dest/$tool
- chmod +x $dest/$tool
+ '$java' -jar "`dirname $0`/'fpp'.jar" '$tool' "$@"' > $dest/fpp-$tool
+ chmod +x $dest/fpp-$tool
done
diff --git a/compiler/tools/fpp-depend/project/build.properties b/compiler/tools/fpp-depend/project/build.properties
deleted file mode 100644
index 3161d2146..000000000
--- a/compiler/tools/fpp-depend/project/build.properties
+++ /dev/null
@@ -1 +0,0 @@
-sbt.version=1.6.1
diff --git a/compiler/tools/fpp-format/project/build.properties b/compiler/tools/fpp-format/project/build.properties
deleted file mode 100644
index 3161d2146..000000000
--- a/compiler/tools/fpp-format/project/build.properties
+++ /dev/null
@@ -1 +0,0 @@
-sbt.version=1.6.1
diff --git a/compiler/tools/fpp-from-xml/project/build.properties b/compiler/tools/fpp-from-xml/project/build.properties
deleted file mode 100644
index 3161d2146..000000000
--- a/compiler/tools/fpp-from-xml/project/build.properties
+++ /dev/null
@@ -1 +0,0 @@
-sbt.version=1.6.1
diff --git a/compiler/tools/fpp-locate-defs/project/build.properties b/compiler/tools/fpp-locate-defs/project/build.properties
deleted file mode 100644
index 3161d2146..000000000
--- a/compiler/tools/fpp-locate-defs/project/build.properties
+++ /dev/null
@@ -1 +0,0 @@
-sbt.version=1.6.1
diff --git a/compiler/tools/fpp-locate-uses/project/build.properties b/compiler/tools/fpp-locate-uses/project/build.properties
deleted file mode 100644
index 3161d2146..000000000
--- a/compiler/tools/fpp-locate-uses/project/build.properties
+++ /dev/null
@@ -1 +0,0 @@
-sbt.version=1.6.1
diff --git a/compiler/tools/fpp-syntax/project/build.properties b/compiler/tools/fpp-syntax/project/build.properties
deleted file mode 100644
index 3161d2146..000000000
--- a/compiler/tools/fpp-syntax/project/build.properties
+++ /dev/null
@@ -1 +0,0 @@
-sbt.version=1.6.1
diff --git a/compiler/tools/fpp-to-cpp/project/build.properties b/compiler/tools/fpp-to-cpp/project/build.properties
deleted file mode 100644
index 3161d2146..000000000
--- a/compiler/tools/fpp-to-cpp/project/build.properties
+++ /dev/null
@@ -1 +0,0 @@
-sbt.version=1.6.1
diff --git a/compiler/tools/fpp-to-json/project/build.properties b/compiler/tools/fpp-to-json/project/build.properties
deleted file mode 100644
index 203e3dcb6..000000000
--- a/compiler/tools/fpp-to-json/project/build.properties
+++ /dev/null
@@ -1 +0,0 @@
-sbt.version=1.6.1
\ No newline at end of file
diff --git a/compiler/tools/fpp-to-xml/project/build.properties b/compiler/tools/fpp-to-xml/project/build.properties
deleted file mode 100644
index 3161d2146..000000000
--- a/compiler/tools/fpp-to-xml/project/build.properties
+++ /dev/null
@@ -1 +0,0 @@
-sbt.version=1.6.1
diff --git a/compiler/tools/fpp-check/project/build.properties b/compiler/tools/fpp/project/build.properties
similarity index 100%
rename from compiler/tools/fpp-check/project/build.properties
rename to compiler/tools/fpp/project/build.properties
diff --git a/compiler/tools/fpp-check/src/main/scala/fpp-check.scala b/compiler/tools/fpp/src/main/scala/fpp-check.scala
similarity index 98%
rename from compiler/tools/fpp-check/src/main/scala/fpp-check.scala
rename to compiler/tools/fpp/src/main/scala/fpp-check.scala
index eea60a88e..fdbc81974 100644
--- a/compiler/tools/fpp-check/src/main/scala/fpp-check.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp-check.scala
@@ -50,7 +50,7 @@ object FPPCheck {
}
}
- def main(args: Array[String]) =
+ def toolMain(args: Array[String]) =
Tool(name).mainMethod(args, oparser, Options(), command)
val builder = OParser.builder[Options]
diff --git a/compiler/tools/fpp-depend/src/main/scala/fpp-depend.scala b/compiler/tools/fpp/src/main/scala/fpp-depend.scala
similarity index 99%
rename from compiler/tools/fpp-depend/src/main/scala/fpp-depend.scala
rename to compiler/tools/fpp/src/main/scala/fpp-depend.scala
index a99cbde82..ff9133bde 100644
--- a/compiler/tools/fpp-depend/src/main/scala/fpp-depend.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp-depend.scala
@@ -116,7 +116,7 @@ object FPPDepend {
}
}
- def main(args: Array[String]) =
+ def toolMain(args: Array[String]) =
Tool(name).mainMethod(args, oparser, Options(), command)
val builder = OParser.builder[Options]
diff --git a/compiler/tools/fpp-filenames/src/main/scala/fpp-filenames.scala b/compiler/tools/fpp/src/main/scala/fpp-filenames.scala
similarity index 98%
rename from compiler/tools/fpp-filenames/src/main/scala/fpp-filenames.scala
rename to compiler/tools/fpp/src/main/scala/fpp-filenames.scala
index 8907f020c..98d5ee4be 100644
--- a/compiler/tools/fpp-filenames/src/main/scala/fpp-filenames.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp-filenames.scala
@@ -46,7 +46,7 @@ object FPPFilenames {
yield files.sorted.map(System.out.println)
}
- def main(args: Array[String]) =
+ def toolMain(args: Array[String]) =
Tool(name).mainMethod(args, oparser, Options(), command)
val builder = OParser.builder[Options]
diff --git a/compiler/tools/fpp-format/src/main/scala/fpp-format.scala b/compiler/tools/fpp/src/main/scala/fpp-format.scala
similarity index 96%
rename from compiler/tools/fpp-format/src/main/scala/fpp-format.scala
rename to compiler/tools/fpp/src/main/scala/fpp-format.scala
index 2f969878f..400fcd743 100644
--- a/compiler/tools/fpp-format/src/main/scala/fpp-format.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp-format.scala
@@ -1,4 +1,4 @@
-package fpp.compiler
+package fpp.compiler.tools
import fpp.compiler.analysis._
import fpp.compiler.ast._
@@ -27,7 +27,7 @@ object FPPFormat {
)
}
- def main(args: Array[String]) =
+ def toolMain(args: Array[String]) =
Tool(name).mainMethod(args, oparser, Options(), command)
def resolveIncludes(options: Options)(tul: List[Ast.TransUnit]):
diff --git a/compiler/tools/fpp-from-xml/src/main/scala/fpp-from-xml.scala b/compiler/tools/fpp/src/main/scala/fpp-from-xml.scala
similarity index 96%
rename from compiler/tools/fpp-from-xml/src/main/scala/fpp-from-xml.scala
rename to compiler/tools/fpp/src/main/scala/fpp-from-xml.scala
index 521b67e1c..af8984454 100644
--- a/compiler/tools/fpp-from-xml/src/main/scala/fpp-from-xml.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp-from-xml.scala
@@ -30,7 +30,7 @@ object FPPFromXml {
yield XmlFppWriter.File(file.toString, elem)
}
- def main(args: Array[String]) =
+ def toolMain(args: Array[String]) =
Tool(name).mainMethod(args, oparser, Options(), command)
val builder = OParser.builder[Options]
diff --git a/compiler/tools/fpp-locate-defs/src/main/scala/fpp-locate-defs.scala b/compiler/tools/fpp/src/main/scala/fpp-locate-defs.scala
similarity index 97%
rename from compiler/tools/fpp-locate-defs/src/main/scala/fpp-locate-defs.scala
rename to compiler/tools/fpp/src/main/scala/fpp-locate-defs.scala
index 5a12dc695..18d3cd0ee 100644
--- a/compiler/tools/fpp-locate-defs/src/main/scala/fpp-locate-defs.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp-locate-defs.scala
@@ -42,7 +42,7 @@ object FPPLocateDefs {
}
}
- def main(args: Array[String]) =
+ def toolMain(args: Array[String]) =
Tool(name).mainMethod(args, oparser, Options(), command)
val builder = OParser.builder[Options]
diff --git a/compiler/tools/fpp-locate-uses/src/main/scala/fpp-locate-uses.scala b/compiler/tools/fpp/src/main/scala/fpp-locate-uses.scala
similarity index 99%
rename from compiler/tools/fpp-locate-uses/src/main/scala/fpp-locate-uses.scala
rename to compiler/tools/fpp/src/main/scala/fpp-locate-uses.scala
index 76561f7e2..e987be4b0 100644
--- a/compiler/tools/fpp-locate-uses/src/main/scala/fpp-locate-uses.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp-locate-uses.scala
@@ -92,7 +92,7 @@ object FPPLocateUses {
}
}
- def main(args: Array[String]) =
+ def toolMain(args: Array[String]) =
Tool(name).mainMethod(args, oparser, Options(), command)
val builder = OParser.builder[Options]
diff --git a/compiler/tools/fpp-syntax/src/main/scala/fpp-syntax.scala b/compiler/tools/fpp/src/main/scala/fpp-syntax.scala
similarity index 96%
rename from compiler/tools/fpp-syntax/src/main/scala/fpp-syntax.scala
rename to compiler/tools/fpp/src/main/scala/fpp-syntax.scala
index eb7d3c17f..5a29e09f0 100644
--- a/compiler/tools/fpp-syntax/src/main/scala/fpp-syntax.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp-syntax.scala
@@ -1,4 +1,4 @@
-package fpp.compiler
+package fpp.compiler.tools
import fpp.compiler.analysis._
import fpp.compiler.ast._
@@ -28,7 +28,7 @@ object FPPSyntax {
)
}
- def main(args: Array[String]) =
+ def toolMain(args: Array[String]) =
Tool(name).mainMethod(args, oparser, Options(), command)
def printAst(options: Options)(tul: List[Ast.TransUnit]):
diff --git a/compiler/tools/fpp-to-cpp/src/main/scala/fpp-to-cpp.scala b/compiler/tools/fpp/src/main/scala/fpp-to-cpp.scala
similarity index 99%
rename from compiler/tools/fpp-to-cpp/src/main/scala/fpp-to-cpp.scala
rename to compiler/tools/fpp/src/main/scala/fpp-to-cpp.scala
index 63fabcfce..5af74fd38 100644
--- a/compiler/tools/fpp-to-cpp/src/main/scala/fpp-to-cpp.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp-to-cpp.scala
@@ -121,7 +121,7 @@ object FPPToCpp {
}
}
- def main(args: Array[String]) =
+ def toolMain(args: Array[String]) =
Tool(name).mainMethod(args, oparser, Options(), command)
val builder = OParser.builder[Options]
diff --git a/compiler/tools/fpp-to-dict/src/main/scala/fpp-to-dict.scala b/compiler/tools/fpp/src/main/scala/fpp-to-dict.scala
similarity index 98%
rename from compiler/tools/fpp-to-dict/src/main/scala/fpp-to-dict.scala
rename to compiler/tools/fpp/src/main/scala/fpp-to-dict.scala
index 5bcf4a737..088581369 100644
--- a/compiler/tools/fpp-to-dict/src/main/scala/fpp-to-dict.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp-to-dict.scala
@@ -1,4 +1,4 @@
-package fpp.compiler
+package fpp.compiler.tools
import fpp.compiler.analysis._
import fpp.compiler.ast._
@@ -59,7 +59,7 @@ object FPPToDict {
} yield ()
}
- def main(args: Array[String]) =
+ def toolMain(args: Array[String]) =
Tool(name).mainMethod(args, oparser, Options(), command)
diff --git a/compiler/tools/fpp-to-json/src/main/scala/fpp-to-json.scala b/compiler/tools/fpp/src/main/scala/fpp-to-json.scala
similarity index 97%
rename from compiler/tools/fpp-to-json/src/main/scala/fpp-to-json.scala
rename to compiler/tools/fpp/src/main/scala/fpp-to-json.scala
index fa728b97c..849f35ef5 100644
--- a/compiler/tools/fpp-to-json/src/main/scala/fpp-to-json.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp-to-json.scala
@@ -1,4 +1,4 @@
-package fpp.compiler
+package fpp.compiler.tools
import fpp.compiler.analysis._
import fpp.compiler.ast._
@@ -30,7 +30,7 @@ object FPPtoJson {
} yield ()
}
- def main(args: Array[String]) =
+ def toolMain(args: Array[String]) =
Tool(name).mainMethod(args, oparser, Options(), command)
def writeJson (
diff --git a/compiler/tools/fpp-to-layout/src/main/scala/fpp-to-layout.scala b/compiler/tools/fpp/src/main/scala/fpp-to-layout.scala
similarity index 97%
rename from compiler/tools/fpp-to-layout/src/main/scala/fpp-to-layout.scala
rename to compiler/tools/fpp/src/main/scala/fpp-to-layout.scala
index fe947416b..466229d7c 100644
--- a/compiler/tools/fpp-to-layout/src/main/scala/fpp-to-layout.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp-to-layout.scala
@@ -1,4 +1,4 @@
-package fpp.compiler
+package fpp.compiler.tools
import fpp.compiler.analysis._
import fpp.compiler.ast._
@@ -50,7 +50,7 @@ object FPPToLayout {
} yield ()
}
- def main(args: Array[String]) =
+ def toolMain(args: Array[String]) =
Tool(name).mainMethod(args, oparser, Options(), command)
diff --git a/compiler/tools/fpp-to-xml/src/main/scala/fpp-to-xml.scala b/compiler/tools/fpp/src/main/scala/fpp-to-xml.scala
similarity index 98%
rename from compiler/tools/fpp-to-xml/src/main/scala/fpp-to-xml.scala
rename to compiler/tools/fpp/src/main/scala/fpp-to-xml.scala
index 0b6db6b85..0e8506337 100644
--- a/compiler/tools/fpp-to-xml/src/main/scala/fpp-to-xml.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp-to-xml.scala
@@ -63,7 +63,7 @@ object FPPToXml {
}
}
- def main(args: Array[String]) =
+ def toolMain(args: Array[String]) =
Tool(name).mainMethod(args, oparser, Options(), command)
val builder = OParser.builder[Options]
diff --git a/compiler/tools/fpp/src/main/scala/fpp.scala b/compiler/tools/fpp/src/main/scala/fpp.scala
new file mode 100644
index 000000000..72bbd24c5
--- /dev/null
+++ b/compiler/tools/fpp/src/main/scala/fpp.scala
@@ -0,0 +1,96 @@
+package fpp.compiler.tools
+
+import fpp.compiler.analysis._
+import fpp.compiler.ast._
+import fpp.compiler.syntax._
+import fpp.compiler.util._
+import scopt.OParser
+
+object FPP {
+ case class Options(
+ args: Array[String],
+ command: String
+ )
+
+ def command(options: Options) = {
+ options.command match {
+ case "check" => FPPCheck.toolMain(options.args)
+ case "depend" => FPPDepend.toolMain(options.args)
+ case "filenames" => FPPFilenames.toolMain(options.args)
+ case "format" => FPPFormat.toolMain(options.args)
+ case "from-xml" => FPPFromXml.toolMain(options.args)
+ case "locate-defs" => FPPLocateDefs.toolMain(options.args)
+ case "locate-uses" => FPPLocateUses.toolMain(options.args)
+ case "syntax" => FPPSyntax.toolMain(options.args)
+ case "to-cpp" => FPPToCpp.toolMain(options.args)
+ case "to-dict" => FPPToDict.toolMain(options.args)
+ case "to-json" => FPPtoJson.toolMain(options.args)
+ case "to-layout" => FPPToLayout.toolMain(options.args)
+ case "to-xml" => FPPToXml.toolMain(options.args)
+ }
+
+ Right(None)
+ }
+
+ def main(args: Array[String]) = {
+ if (args.length >= 1) {
+ Tool(name).mainMethod(
+ args.slice(0, 1),
+ oparser,
+ Options(args.slice(1, args.length), ""),
+ command
+ )
+ } else {
+ Tool(name).mainMethod(
+ args,
+ oparser,
+ Options(args, ""),
+ command
+ )
+ }
+ }
+
+ val builder = OParser.builder[Options]
+ val name = "fpp"
+
+ val oparser = {
+ import builder._
+ OParser.sequence(
+ programName(name),
+ head(name, Version.v),
+ note("""FPP Commands:
+
+check performs semantic checking of FPP models
+depend computes dependencies for FPP source files
+filenames writes out the names of C++ files generated from FPP source files
+format parses FPP source files and writes out formatted source files
+from-xml parses older F Prime XML files and converts them to FPP files
+locate-defs parses FPP source files and reports the locations of symbol definitions
+locate-uses parses FPP source files and reports the locations of symbols used in the files
+syntax parses FPP source files into an abstract syntax tree (AST) and optionally writes out the AST
+to-cpp parses FPP models, performs semantic checking on them, and writes out C++ files
+to-dict writes JSON dictionaries corresponding to F Prime topologies
+to-json parses an FPP model, performs semantic checking on it, and writes out the model in JSON
+to-layout writes layout text files for connection graphs within F Prime topologies
+"""),
+ help('h', "help").text("print this message and exit"),
+ version('v', "version").text("print version and exit"),
+ arg[String]("COMMAND")
+ .required()
+ .action((f, c) => c.copy(command = f))
+ .validate(c =>
+ c match {
+ case "check" | "depend" | "filenames" | "format" | "from-xml" |
+ "locate-defs" | "locate-uses" | "syntax" |
+ "to-cpp" | "to-dict" | "to-json" | "to-layout" | "to-xml" =>
+ Right(None)
+ case _ => Left(s"invalid fpp command '$c'")
+ }
+ ),
+ note("""
+Run 'fpp COMMAND --help' for more information on a command.
+""")
+ )
+ }
+
+}
From e6a285706ac2ec9dae3ffd033833b13a57c50a3b Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 10:15:13 -0700
Subject: [PATCH 002/110] Update JNI
---
.../META-INF/native-image/jni-config.json | 50 +------------------
1 file changed, 1 insertion(+), 49 deletions(-)
diff --git a/compiler/lib/src/main/resources/META-INF/native-image/jni-config.json b/compiler/lib/src/main/resources/META-INF/native-image/jni-config.json
index b842ac8c2..f8aba73d8 100644
--- a/compiler/lib/src/main/resources/META-INF/native-image/jni-config.json
+++ b/compiler/lib/src/main/resources/META-INF/native-image/jni-config.json
@@ -1,54 +1,6 @@
[
{
- "name":"fpp.compiler.FPPFormat",
- "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
-},
-{
- "name":"fpp.compiler.FPPSyntax",
- "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
-},
-{
- "name":"fpp.compiler.FPPToDict",
- "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
-},
-{
- "name":"fpp.compiler.FPPToLayout",
- "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
-},
-{
- "name":"fpp.compiler.FPPtoJson",
- "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
-},
-{
- "name":"fpp.compiler.tools.FPPCheck",
- "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
-},
-{
- "name":"fpp.compiler.tools.FPPDepend",
- "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
-},
-{
- "name":"fpp.compiler.tools.FPPFilenames",
- "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
-},
-{
- "name":"fpp.compiler.tools.FPPFromXml",
- "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
-},
-{
- "name":"fpp.compiler.tools.FPPLocateDefs",
- "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
-},
-{
- "name":"fpp.compiler.tools.FPPLocateUses",
- "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
-},
-{
- "name":"fpp.compiler.tools.FPPToCpp",
- "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
-},
-{
- "name":"fpp.compiler.tools.FPPToXml",
+ "name":"fpp.compiler.tools.FPP",
"methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }]
},
{
From debd023365f7d352343fa75eb2e8ecc3d1fafe47 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 11:08:29 -0700
Subject: [PATCH 003/110] Fix release build
---
compiler/release | 47 ++++++++++++---------
compiler/tools/fpp/src/main/scala/fpp.scala | 3 --
2 files changed, 27 insertions(+), 23 deletions(-)
diff --git a/compiler/release b/compiler/release
index 0457c5df6..e26562844 100755
--- a/compiler/release
+++ b/compiler/release
@@ -25,10 +25,13 @@ evalp()
# Get tool names from a directory
get_tool_names()
{
+ prefix="fpp-"
dir=$1
- for file in $dir/*.jar
+ for file in $dir/$prefix*
do
- basename $file .jar
+ base=`basename $file`
+ result="${base#$prefix}"
+ echo $result
done
}
@@ -86,26 +89,30 @@ print_phase "Constructing binary tools in $native_bin"
# Get the tool names from bin
tool_names=`get_tool_names bin`
+jar_file="bin/fpp.jar"
+out_file="$native_bin/fpp"
+echo "Building fpp"
+evalp "$native_image" $FPP_NATIVE_IMAGE_FLAGS \
+ --no-fallback --install-exit-handlers \
+ -jar "$jar_file" "$out_file"
+if [ $? -ne 0 ]
+then
+ echo "[ERROR] Failed to build $out_file"
+ exit 1
+fi
+sync; sync; sync;
+if ! $out_file --help 1>/dev/null
+then
+ echo "[ERROR] $out_file not executable"
+ exit 1
+fi
+
# Use GraalVM to convert the jar files to native binaries
-for tool_name in $tool_names
+for tool in $tool_names
do
- jar_file="bin/$tool_name.jar"
- out_file="$native_bin/$tool_name"
- echo "Building $out_file"
- evalp "$native_image" $FPP_NATIVE_IMAGE_FLAGS \
- --no-fallback --install-exit-handlers \
- -jar "$jar_file" "$out_file"
- if [ $? -ne 0 ]
- then
- echo "[ERROR] Failed to build $out_file"
- exit 1
- fi
- sync; sync; sync;
- if ! $out_file --help 1>/dev/null
- then
- echo "[ERROR] $out_file not executable"
- exit 1
- fi
+ echo '#!/bin/sh
+ "`dirname $0`/fpp" '$tool' "$@"' > $native_bin/fpp-$tool
+ chmod +x $native_bin/fpp-$tool
done
sync; sync; sync;
diff --git a/compiler/tools/fpp/src/main/scala/fpp.scala b/compiler/tools/fpp/src/main/scala/fpp.scala
index 72bbd24c5..62e979024 100644
--- a/compiler/tools/fpp/src/main/scala/fpp.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp.scala
@@ -1,8 +1,5 @@
package fpp.compiler.tools
-import fpp.compiler.analysis._
-import fpp.compiler.ast._
-import fpp.compiler.syntax._
import fpp.compiler.util._
import scopt.OParser
From c353b5e32b7aedc8224294385dff2d517e664969 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 12:58:38 -0700
Subject: [PATCH 004/110] Purge XML
---
compiler/install | 2 -
.../scala/codegen/ComputeGeneratedFiles.scala | 14 +-
.../XmlFppWriter/ArrayXmlFppWriter.scala | 79 --
.../XmlFppWriter/ComponentXmlFppWriter.scala | 531 ----------
.../XmlFppWriter/EnumXmlFppWriter.scala | 88 --
.../FormalParamsXmlFppWriter.scala | 72 --
.../XmlFppWriter/PortXmlFppWriter.scala | 62 --
.../XmlFppWriter/StructXmlFppWriter.scala | 106 --
.../XmlFppWriter/TlmPacketSetXmlWriter.scala | 121 ---
.../XmlFppWriter/TopologyXmlFppWriter.scala | 186 ----
.../codegen/XmlFppWriter/XmlFppWriter.scala | 435 --------
.../XmlWriter/AnnotationXmlWriter.scala | 26 -
.../codegen/XmlWriter/ArrayXmlWriter.scala | 86 --
.../XmlWriter/ComponentXmlWriter.scala | 329 -------
.../codegen/XmlWriter/ComputeXmlFiles.scala | 97 --
.../codegen/XmlWriter/DpPortXmlLowering.scala | 92 --
.../codegen/XmlWriter/EnumXmlWriter.scala | 57 --
.../XmlWriter/FormalParamsXmlWriter.scala | 43 -
.../codegen/XmlWriter/FormatXmlWriter.scala | 74 --
.../codegen/XmlWriter/PortXmlWriter.scala | 45 -
.../codegen/XmlWriter/StructXmlWriter.scala | 76 --
.../codegen/XmlWriter/TopologyXmlWriter.scala | 99 --
.../codegen/XmlWriter/TypeXmlWriter.scala | 29 -
.../codegen/XmlWriter/ValueXmlWriter.scala | 15 -
.../scala/codegen/XmlWriter/XmlTags.scala | 57 --
.../scala/codegen/XmlWriter/XmlWriter.scala | 107 --
.../codegen/XmlWriter/XmlWriterState.scala | 121 ---
compiler/tools/fpp-from-xml/test/.gitignore | 4 -
.../test/array/array_enum.ref.txt | 3 -
.../fpp-from-xml/test/array/array_enum.xml | 10 -
.../test/array/array_qual_id.ref.txt | 3 -
.../fpp-from-xml/test/array/array_qual_id.xml | 10 -
.../test/array/array_string.ref.txt | 13 -
.../fpp-from-xml/test/array/array_string.xml | 12 -
.../tools/fpp-from-xml/test/array/check-fpp | 10 -
compiler/tools/fpp-from-xml/test/array/clean | 5 -
compiler/tools/fpp-from-xml/test/array/run | 5 -
.../tools/fpp-from-xml/test/array/tests.sh | 5 -
.../tools/fpp-from-xml/test/array/update-ref | 5 -
compiler/tools/fpp-from-xml/test/check-fpp | 10 -
compiler/tools/fpp-from-xml/test/clean | 10 -
.../fpp-from-xml/test/component/check-fpp | 28 -
.../tools/fpp-from-xml/test/component/clean | 5 -
.../test/component/commands.ref.txt | 36 -
.../fpp-from-xml/test/component/commands.xml | 48 -
.../test/component/events.ref.txt | 49 -
.../fpp-from-xml/test/component/events.xml | 62 --
.../component/general_ports_active.ref.txt | 28 -
.../test/component/general_ports_active.xml | 26 -
.../component/general_ports_passive.ref.txt | 21 -
.../test/component/general_ports_passive.xml | 24 -
.../test/component/import_dictionary.ref.txt | 12 -
.../test/component/import_dictionary.xml | 6 -
.../test/component/internal_ports.ref.txt | 19 -
.../test/component/internal_ports.xml | 30 -
.../test/component/parameters.ref.txt | 27 -
.../test/component/parameters.xml | 23 -
.../tools/fpp-from-xml/test/component/run | 5 -
.../test/component/special_ports.ref.txt | 23 -
.../test/component/special_ports.xml | 29 -
.../test/component/telemetry.ref.txt | 28 -
.../fpp-from-xml/test/component/telemetry.xml | 18 -
.../component/telemetry_bad_limit.ref.txt | 3 -
.../test/component/telemetry_bad_limit.xml | 3 -
.../fpp-from-xml/test/component/tests.sh | 12 -
.../fpp-from-xml/test/component/update-ref | 5 -
.../tools/fpp-from-xml/test/enum/.gitignore | 3 -
.../tools/fpp-from-xml/test/enum/check-fpp | 10 -
compiler/tools/fpp-from-xml/test/enum/clean | 5 -
.../test/enum/enum_kwd_name.ref.txt | 9 -
.../fpp-from-xml/test/enum/enum_kwd_name.xml | 12 -
.../test/enum/enum_missing_name.ref.txt | 3 -
.../test/enum/enum_missing_name.xml | 1 -
.../tools/fpp-from-xml/test/enum/enum_ok.fpp | 16 -
.../fpp-from-xml/test/enum/enum_ok.ref.txt | 13 -
.../tools/fpp-from-xml/test/enum/enum_ok.xml | 12 -
compiler/tools/fpp-from-xml/test/enum/run | 5 -
.../tools/fpp-from-xml/test/enum/tests.sh | 5 -
.../tools/fpp-from-xml/test/enum/update-ref | 5 -
.../tools/fpp-from-xml/test/port/check-fpp | 10 -
compiler/tools/fpp-from-xml/test/port/clean | 5 -
.../test/port/port_cmd_resp.ref.txt | 19 -
.../fpp-from-xml/test/port/port_cmd_resp.xml | 26 -
.../fpp-from-xml/test/port/port_ok.ref.txt | 18 -
.../tools/fpp-from-xml/test/port/port_ok.xml | 34 -
compiler/tools/fpp-from-xml/test/port/run | 5 -
.../tools/fpp-from-xml/test/port/tests.sh | 4 -
.../tools/fpp-from-xml/test/port/update-ref | 5 -
.../tools/fpp-from-xml/test/scripts/run.sh | 47 -
.../fpp-from-xml/test/scripts/update-ref.sh | 49 -
.../tools/fpp-from-xml/test/struct/check-fpp | 10 -
compiler/tools/fpp-from-xml/test/struct/clean | 5 -
.../test/struct/member_array_of_enum.ref.txt | 19 -
.../test/struct/member_array_of_enum.xml | 15 -
compiler/tools/fpp-from-xml/test/struct/run | 5 -
.../test/struct/struct_format.ref.txt | 17 -
.../test/struct/struct_format.xml | 10 -
.../struct/struct_missing_member_name.ref.txt | 3 -
.../struct/struct_missing_member_name.xml | 5 -
.../test/struct/struct_ok.ref.txt | 24 -
.../fpp-from-xml/test/struct/struct_ok.xml | 20 -
.../tools/fpp-from-xml/test/struct/tests.sh | 6 -
.../tools/fpp-from-xml/test/struct/update-ref | 5 -
.../tools/fpp-from-xml/test/syntax/check-fpp | 10 -
compiler/tools/fpp-from-xml/test/syntax/clean | 5 -
.../test/syntax/parse_error.ref.txt | 3 -
.../fpp-from-xml/test/syntax/parse_error.xml | 1 -
compiler/tools/fpp-from-xml/test/syntax/run | 5 -
.../tools/fpp-from-xml/test/syntax/tests.sh | 3 -
.../tools/fpp-from-xml/test/syntax/update-ref | 5 -
compiler/tools/fpp-from-xml/test/test | 6 -
.../tools/fpp-from-xml/test/top/check-fpp | 15 -
compiler/tools/fpp-from-xml/test/top/clean | 5 -
.../fpp-from-xml/test/top/fprime_ref.ref.txt | 321 ------
.../fpp-from-xml/test/top/fprime_ref.xml | 927 ------------------
.../test/top/fprime_ref_packets.fpp | 5 -
.../test/top/fprime_ref_packets.ref.txt | 265 -----
.../test/top/fprime_ref_packets.xml | 261 -----
compiler/tools/fpp-from-xml/test/top/run | 5 -
compiler/tools/fpp-from-xml/test/top/tests.sh | 4 -
.../tools/fpp-from-xml/test/top/update-ref | 5 -
compiler/tools/fpp-to-xml/test/.gitignore | 10 -
compiler/tools/fpp-to-xml/test/README.adoc | 22 -
compiler/tools/fpp-to-xml/test/T.hpp | 34 -
compiler/tools/fpp-to-xml/test/Time.hpp | 94 --
.../test/array/ArrayEnum1ArrayAi.ref.xml | 19 -
.../test/array/ArrayEnum2ArrayAi.ref.xml | 19 -
.../test/array/ArrayEnumE1EnumAi.ref.xml | 11 -
.../test/array/ArrayEnumE2EnumAi.ref.xml | 12 -
.../test/array/ArrayOK1ArrayAi.ref.xml | 18 -
.../test/array/ArrayOK2ArrayAi.ref.xml | 17 -
.../test/array/ArrayOK3ArrayAi.ref.xml | 15 -
.../test/array/ArrayOK4ArrayAi.ref.xml | 21 -
.../test/array/ArrayOK5ArrayAi.ref.xml | 17 -
.../array/ArraySpecialCommentArrayAi.ref.xml | 21 -
.../test/array/ArrayStruct1ArrayAi.ref.xml | 16 -
.../test/array/ArrayStruct2ArrayAi.ref.xml | 20 -
.../ArrayStructMemberArrayArrayAi.ref.xml | 17 -
...rayStructMemberArraySerializableAi.ref.xml | 19 -
.../array/ArrayStructS1SerializableAi.ref.xml | 50 -
.../array/ArrayStructS2SerializableAi.ref.xml | 14 -
.../fpp-to-xml/test/array/array_enum.fpp | 24 -
.../fpp-to-xml/test/array/array_enum.ref.txt | 0
.../tools/fpp-to-xml/test/array/array_ok.fpp | 24 -
.../fpp-to-xml/test/array/array_ok.ref.txt | 0
.../test/array/array_special_comment.fpp | 3 -
.../test/array/array_special_comment.ref.txt | 0
.../fpp-to-xml/test/array/array_struct.fpp | 29 -
.../test/array/array_struct.ref.txt | 0
.../test/array/array_struct_member_array.fpp | 13 -
.../array/array_struct_member_array.ref.txt | 0
.../tools/fpp-to-xml/test/array/check-xml | 19 -
compiler/tools/fpp-to-xml/test/array/clean | 5 -
compiler/tools/fpp-to-xml/test/array/run | 5 -
compiler/tools/fpp-to-xml/test/array/run.sh | 31 -
compiler/tools/fpp-to-xml/test/array/tests.sh | 7 -
.../tools/fpp-to-xml/test/array/update-ref | 5 -
.../tools/fpp-to-xml/test/array/update-ref.sh | 33 -
compiler/tools/fpp-to-xml/test/check-xml | 10 -
compiler/tools/fpp-to-xml/test/clean | 10 -
.../test/component/CmdPortAi.ref.xml | 8 -
.../test/component/CmdRegPortAi.ref.xml | 8 -
.../test/component/CmdResponsePortAi.ref.xml | 8 -
.../component/CommandsComponentAi.ref.xml | 48 -
.../component/DpBufferRequestPortAi.ref.xml | 8 -
.../test/component/DpBufferSendPortAi.ref.xml | 8 -
.../test/component/DpGetPortAi.ref.xml | 8 -
.../test/component/DpRequestPortAi.ref.xml | 8 -
.../test/component/DpResponsePortAi.ref.xml | 8 -
.../test/component/DpSendPortAi.ref.xml | 8 -
.../test/component/EmptyComponentAi.ref.xml | 9 -
.../test/component/EventsComponentAi.ref.xml | 35 -
.../GeneralPorts1ComponentAi.ref.xml | 31 -
.../GeneralPorts2ComponentAi.ref.xml | 28 -
.../InternalPortsComponentAi.ref.xml | 38 -
.../test/component/LogPortAi.ref.xml | 8 -
.../test/component/LogTextPortAi.ref.xml | 8 -
.../fpp-to-xml/test/component/PPortAi.ref.xml | 8 -
.../component/ParametersComponentAi.ref.xml | 34 -
.../test/component/PrmGetPortAi.ref.xml | 8 -
.../test/component/PrmSetPortAi.ref.xml | 8 -
.../ProductRecvPortAsyncComponentAi.ref.xml | 15 -
.../ProductRecvPortGuardedComponentAi.ref.xml | 15 -
.../component/SpecialPortsComponentAi.ref.xml | 37 -
.../component/TelemetryComponentAi.ref.xml | 29 -
.../test/component/TimePortAi.ref.xml | 8 -
.../test/component/TlmPortAi.ref.xml | 8 -
.../test/component/TypesComponentAi.ref.xml | 14 -
.../test/component/Types_AArrayAi.ref.xml | 16 -
.../test/component/Types_AUseArrayAi.ref.xml | 17 -
.../test/component/Types_EEnumAi.ref.xml | 9 -
.../test/component/Types_EUseArrayAi.ref.xml | 17 -
.../component/Types_SSerializableAi.ref.xml | 16 -
.../test/component/Types_SUseArrayAi.ref.xml | 17 -
.../fpp-to-xml/test/component/Types_T.hpp | 38 -
.../test/component/Types_TUseArrayAi.ref.xml | 17 -
.../tools/fpp-to-xml/test/component/check-xml | 20 -
.../tools/fpp-to-xml/test/component/clean | 5 -
.../fpp-to-xml/test/component/commands.fpp | 25 -
.../test/component/commands.ref.txt | 0
.../tools/fpp-to-xml/test/component/empty.fpp | 7 -
.../fpp-to-xml/test/component/empty.ref.txt | 0
.../fpp-to-xml/test/component/events.fpp | 15 -
.../fpp-to-xml/test/component/events.ref.txt | 0
.../test/component/general_ports.fpp | 35 -
.../test/component/general_ports.ref.txt | 0
.../test/component/internal_ports.fpp | 14 -
.../test/component/internal_ports.ref.txt | 0
.../fpp-to-xml/test/component/parameters.fpp | 19 -
.../test/component/parameters.ref.txt | 0
.../tools/fpp-to-xml/test/component/ports.fpp | 23 -
.../fpp-to-xml/test/component/ports.ref.txt | 0
.../component/product_recv_port_async.fpp | 9 -
.../component/product_recv_port_async.ref.txt | 0
.../component/product_recv_port_guarded.fpp | 9 -
.../product_recv_port_guarded.ref.txt | 0
compiler/tools/fpp-to-xml/test/component/run | 5 -
.../tools/fpp-to-xml/test/component/run.sh | 85 --
.../test/component/special_ports.fpp | 24 -
.../test/component/special_ports.ref.txt | 0
.../fpp-to-xml/test/component/telemetry.fpp | 16 -
.../test/component/telemetry.ref.txt | 0
.../tools/fpp-to-xml/test/component/tests.sh | 14 -
.../tools/fpp-to-xml/test/component/types.fpp | 20 -
.../test/component/types.names.ref.txt | 8 -
.../fpp-to-xml/test/component/types.ref.txt | 0
.../fpp-to-xml/test/component/update-ref | 5 -
.../fpp-to-xml/test/component/update-ref.sh | 85 --
.../test/enum/DefaultEnumAi.ref.xml | 13 -
.../test/enum/ExplicitEnumAi.ref.xml | 13 -
.../test/enum/ImplicitEnumAi.ref.xml | 13 -
.../test/enum/SerializeTypeEnumAi.ref.xml | 13 -
compiler/tools/fpp-to-xml/test/enum/check-xml | 5 -
compiler/tools/fpp-to-xml/test/enum/clean | 5 -
.../tools/fpp-to-xml/test/enum/default.fpp | 9 -
.../fpp-to-xml/test/enum/default.ref.txt | 0
.../tools/fpp-to-xml/test/enum/explicit.fpp | 9 -
.../fpp-to-xml/test/enum/explicit.ref.txt | 0
.../tools/fpp-to-xml/test/enum/implicit.fpp | 9 -
.../fpp-to-xml/test/enum/implicit.ref.txt | 0
compiler/tools/fpp-to-xml/test/enum/run | 5 -
compiler/tools/fpp-to-xml/test/enum/run.sh | 23 -
.../fpp-to-xml/test/enum/serialize_type.fpp | 9 -
.../test/enum/serialize_type.ref.txt | 0
compiler/tools/fpp-to-xml/test/enum/tests.sh | 6 -
.../tools/fpp-to-xml/test/enum/update-ref | 5 -
.../tools/fpp-to-xml/test/enum/update-ref.sh | 23 -
compiler/tools/fpp-to-xml/test/port/A.fpp | 5 -
compiler/tools/fpp-to-xml/test/port/A.ref.txt | 0
.../fpp-to-xml/test/port/AArrayAi.ref.xml | 16 -
compiler/tools/fpp-to-xml/test/port/E.fpp | 5 -
compiler/tools/fpp-to-xml/test/port/E.ref.txt | 0
.../fpp-to-xml/test/port/EEnumAi.ref.xml | 11 -
.../test/port/PortKwdNamePortAi.ref.xml | 11 -
.../test/port/PortOK1PortAi.ref.xml | 8 -
.../test/port/PortOK2PortAi.ref.xml | 18 -
.../test/port/PortOK3PortAi.ref.xml | 13 -
.../test/port/PortOK4PortAi.ref.xml | 16 -
compiler/tools/fpp-to-xml/test/port/S.fpp | 5 -
compiler/tools/fpp-to-xml/test/port/S.ref.txt | 0
.../test/port/SSerializableAi.ref.xml | 16 -
compiler/tools/fpp-to-xml/test/port/check-xml | 5 -
compiler/tools/fpp-to-xml/test/port/clean | 5 -
.../fpp-to-xml/test/port/port_kwd_name.fpp | 8 -
.../test/port/port_kwd_name.ref.txt | 0
.../tools/fpp-to-xml/test/port/port_ok.fpp | 29 -
.../fpp-to-xml/test/port/port_ok.ref.txt | 0
compiler/tools/fpp-to-xml/test/port/run | 5 -
compiler/tools/fpp-to-xml/test/port/run.sh | 26 -
compiler/tools/fpp-to-xml/test/port/tests.sh | 5 -
.../tools/fpp-to-xml/test/port/update-ref | 5 -
.../tools/fpp-to-xml/test/port/update-ref.sh | 22 -
.../fpp-to-xml/test/scripts/check-xml.sh | 41 -
.../tools/fpp-to-xml/test/scripts/clean.sh | 10 -
compiler/tools/fpp-to-xml/test/scripts/run.sh | 53 -
.../fpp-to-xml/test/scripts/update-ref.sh | 53 -
.../fpp-to-xml/test/struct/EEnumAi.ref.xml | 10 -
.../struct/IncludedSerializableAi.ref.xml | 16 -
.../struct/IncludingSerializableAi.ref.xml | 14 -
.../StructAbsTypeSerializableAi.ref.xml | 14 -
.../StructDefaultSerializableAi.ref.xml | 19 -
.../StructEnumMemberSerializableAi.ref.xml | 14 -
.../struct/StructFormatSerializableAi.ref.xml | 61 --
.../StructModules1SerializableAi.ref.xml | 16 -
.../StructModules2SerializableAi.ref.xml | 14 -
.../StructModules3SerializableAi.ref.xml | 14 -
.../struct/StructOK1SerializableAi.ref.xml | 50 -
.../struct/StructOK2SerializableAi.ref.xml | 14 -
.../StructStringArraySerializableAi.ref.xml | 16 -
.../struct/StructStringSerializableAi.ref.xml | 16 -
.../tools/fpp-to-xml/test/struct/check-xml | 5 -
compiler/tools/fpp-to-xml/test/struct/clean | 5 -
.../test/struct/duplicate_xml_file.fpp | 5 -
.../test/struct/duplicate_xml_file.ref.txt | 9 -
.../fpp-to-xml/test/struct/empty_struct.fpp | 1 -
.../test/struct/empty_struct.ref.txt | 5 -
.../tools/fpp-to-xml/test/struct/enum.fpp | 8 -
.../tools/fpp-to-xml/test/struct/enum.ref.txt | 0
.../tools/fpp-to-xml/test/struct/include.fpp | 7 -
.../fpp-to-xml/test/struct/include.ref.txt | 0
.../test/struct/include/included.fppi | 1 -
.../StructOutputDirSerializableAi.ref.xml | 16 -
.../struct/output_dir/struct_output_dir.fpp | 4 -
.../output_dir/struct_output_dir.ref.txt | 0
compiler/tools/fpp-to-xml/test/struct/run | 5 -
compiler/tools/fpp-to-xml/test/struct/run.sh | 122 ---
.../test/struct/struct_abs_type.fpp | 2 -
.../test/struct/struct_abs_type.ref.txt | 0
.../fpp-to-xml/test/struct/struct_default.fpp | 5 -
.../test/struct/struct_default.ref.txt | 0
.../test/struct/struct_enum_member.fpp | 5 -
.../test/struct/struct_enum_member.ref.txt | 0
.../fpp-to-xml/test/struct/struct_format.fpp | 19 -
.../test/struct/struct_format.ref.txt | 0
.../fpp-to-xml/test/struct/struct_modules.fpp | 13 -
.../test/struct/struct_modules.ref.txt | 0
.../fpp-to-xml/test/struct/struct_ok.fpp | 22 -
.../test/struct/struct_ok.names.ref.txt | 2 -
.../fpp-to-xml/test/struct/struct_ok.ref.txt | 0
.../fpp-to-xml/test/struct/struct_string.fpp | 4 -
.../test/struct/struct_string.ref.txt | 0
.../test/struct/struct_string_array.fpp | 4 -
.../test/struct/struct_string_array.ref.txt | 0
.../tools/fpp-to-xml/test/struct/tests.sh | 16 -
.../tools/fpp-to-xml/test/struct/update-ref | 5 -
.../fpp-to-xml/test/struct/update-ref.sh | 72 --
compiler/tools/fpp-to-xml/test/test | 6 -
.../test/top_basic/C1ComponentAi.ref.xml | 15 -
.../test/top_basic/C2ComponentAi.ref.xml | 15 -
.../fpp-to-xml/test/top_basic/PPortAi.ref.xml | 8 -
.../test/top_basic/TTopologyAppAi.ref.xml | 22 -
.../tools/fpp-to-xml/test/top_basic/basic.fpp | 31 -
.../fpp-to-xml/test/top_basic/basic.ref.txt | 0
.../tools/fpp-to-xml/test/top_basic/check-xml | 5 -
.../tools/fpp-to-xml/test/top_basic/clean | 5 -
compiler/tools/fpp-to-xml/test/top_basic/run | 5 -
.../tools/fpp-to-xml/test/top_basic/run.sh | 5 -
.../tools/fpp-to-xml/test/top_basic/tests.sh | 3 -
.../fpp-to-xml/test/top_basic/update-ref | 5 -
.../fpp-to-xml/test/top_basic/update-ref.sh | 5 -
.../top_import/basic/AComponentAi.ref.xml | 15 -
.../top_import/basic/BComponentAi.ref.xml | 15 -
.../test/top_import/basic/PPortAi.ref.xml | 8 -
.../top_import/basic/TTopologyAppAi.ref.xml | 30 -
.../test/top_import/basic/check-xml | 5 -
.../fpp-to-xml/test/top_import/basic/clean | 5 -
.../test/top_import/basic/import_basic.fpp | 45 -
.../top_import/basic/import_basic.ref.txt | 0
.../fpp-to-xml/test/top_import/basic/run | 5 -
.../fpp-to-xml/test/top_import/basic/run.sh | 5 -
.../fpp-to-xml/test/top_import/basic/tests.sh | 3 -
.../test/top_import/basic/update-ref | 5 -
.../test/top_import/basic/update-ref.sh | 5 -
.../top_import/merge/AComponentAi.ref.xml | 15 -
.../top_import/merge/BComponentAi.ref.xml | 15 -
.../test/top_import/merge/PPortAi.ref.xml | 8 -
.../top_import/merge/TTopologyAppAi.ref.xml | 31 -
.../test/top_import/merge/check-xml | 5 -
.../fpp-to-xml/test/top_import/merge/clean | 5 -
.../test/top_import/merge/import_merge.fpp | 46 -
.../top_import/merge/import_merge.ref.txt | 0
.../fpp-to-xml/test/top_import/merge/run | 5 -
.../fpp-to-xml/test/top_import/merge/run.sh | 5 -
.../fpp-to-xml/test/top_import/merge/tests.sh | 3 -
.../test/top_import/merge/update-ref | 5 -
.../test/top_import/merge/update-ref.sh | 5 -
.../top_import/pattern/CComponentAi.ref.xml | 15 -
.../top_import/pattern/TTopologyAppAi.ref.xml | 27 -
.../pattern/TimeComponentAi.ref.xml | 15 -
.../top_import/pattern/TimePortAi.ref.xml | 12 -
.../test/top_import/pattern/check-xml | 5 -
.../fpp-to-xml/test/top_import/pattern/clean | 5 -
.../top_import/pattern/import_pattern.fpp | 25 -
.../top_import/pattern/import_pattern.ref.txt | 0
.../fpp-to-xml/test/top_import/pattern/run | 5 -
.../fpp-to-xml/test/top_import/pattern/run.sh | 5 -
.../test/top_import/pattern/tests.sh | 3 -
.../test/top_import/pattern/update-ref | 5 -
.../test/top_import/pattern/update-ref.sh | 5 -
.../top_import/port_num/AComponentAi.ref.xml | 15 -
.../top_import/port_num/BComponentAi.ref.xml | 15 -
.../test/top_import/port_num/PPortAi.ref.xml | 8 -
.../port_num/TTopologyAppAi.ref.xml | 31 -
.../test/top_import/port_num/check-xml | 5 -
.../fpp-to-xml/test/top_import/port_num/clean | 5 -
.../top_import/port_num/import_port_num.fpp | 46 -
.../port_num/import_port_num.ref.txt | 0
.../fpp-to-xml/test/top_import/port_num/run | 5 -
.../test/top_import/port_num/run.sh | 5 -
.../test/top_import/port_num/tests.sh | 3 -
.../test/top_import/port_num/update-ref | 5 -
.../test/top_import/port_num/update-ref.sh | 5 -
.../top_import/private/AComponentAi.ref.xml | 15 -
.../top_import/private/BComponentAi.ref.xml | 15 -
.../test/top_import/private/PPortAi.ref.xml | 8 -
.../top_import/private/TTopologyAppAi.ref.xml | 22 -
.../test/top_import/private/check-xml | 5 -
.../fpp-to-xml/test/top_import/private/clean | 5 -
.../top_import/private/import_private.fpp | 45 -
.../top_import/private/import_private.ref.txt | 0
.../fpp-to-xml/test/top_import/private/run | 5 -
.../fpp-to-xml/test/top_import/private/run.sh | 5 -
.../test/top_import/private/tests.sh | 3 -
.../test/top_import/private/update-ref | 5 -
.../test/top_import/private/update-ref.sh | 5 -
.../transitive/AComponentAi.ref.xml | 15 -
.../transitive/BComponentAi.ref.xml | 15 -
.../top_import/transitive/PPortAi.ref.xml | 8 -
.../transitive/TTopologyAppAi.ref.xml | 22 -
.../test/top_import/transitive/check-xml | 5 -
.../test/top_import/transitive/clean | 5 -
.../transitive/import_transitive.fpp | 42 -
.../transitive/import_transitive.ref.txt | 0
.../fpp-to-xml/test/top_import/transitive/run | 5 -
.../test/top_import/transitive/run.sh | 5 -
.../test/top_import/transitive/tests.sh | 3 -
.../test/top_import/transitive/update-ref | 5 -
.../test/top_import/transitive/update-ref.sh | 5 -
.../top_numbering/general/PPortAi.ref.xml | 8 -
.../general/SourceComponentAi.ref.xml | 15 -
.../general/TTopologyAppAi.ref.xml | 38 -
.../general/TargetComponentAi.ref.xml | 15 -
.../test/top_numbering/general/check-xml | 5 -
.../test/top_numbering/general/clean | 5 -
.../general/numbering_general.fpp | 33 -
.../general/numbering_general.ref.txt | 0
.../fpp-to-xml/test/top_numbering/general/run | 5 -
.../test/top_numbering/general/run.sh | 5 -
.../test/top_numbering/general/tests.sh | 3 -
.../test/top_numbering/general/update-ref | 5 -
.../test/top_numbering/general/update-ref.sh | 5 -
.../top_numbering/matched/PPortAi.ref.xml | 8 -
.../matched/SourceComponentAi.ref.xml | 16 -
.../matched/TTopologyAppAi.ref.xml | 44 -
.../matched/TargetComponentAi.ref.xml | 16 -
.../test/top_numbering/matched/check-xml | 5 -
.../test/top_numbering/matched/clean | 5 -
.../matched/numbering_matched.fpp | 45 -
.../matched/numbering_matched.ref.txt | 0
.../fpp-to-xml/test/top_numbering/matched/run | 5 -
.../test/top_numbering/matched/run.sh | 5 -
.../test/top_numbering/matched/tests.sh | 3 -
.../test/top_numbering/matched/update-ref | 5 -
.../test/top_numbering/matched/update-ref.sh | 5 -
.../test/top_numbering/unmatched/.gitignore | 4 -
.../unmatched/TTopologyAppAi.ref.xml | 124 ---
.../test/top_numbering/unmatched/check-xml | 5 -
.../test/top_numbering/unmatched/clean | 9 -
.../test/top_numbering/unmatched/gen-layout | 18 -
.../unmatched/numbering_unmatched.fpp | 119 ---
.../unmatched/numbering_unmatched.ref.txt | 0
.../test/top_numbering/unmatched/run | 5 -
.../test/top_numbering/unmatched/run.sh | 5 -
.../test/top_numbering/unmatched/tests.sh | 3 -
.../test/top_numbering/unmatched/update-ref | 5 -
.../top_numbering/unmatched/update-ref.sh | 5 -
.../top_pattern/command/CComponentAi.ref.xml | 19 -
.../top_pattern/command/CmdPortAi.ref.xml | 8 -
.../top_pattern/command/CmdRegPortAi.ref.xml | 8 -
.../command/CmdResponsePortAi.ref.xml | 8 -
.../command/CommandsComponentAi.ref.xml | 19 -
.../command/TTopologyAppAi.ref.xml | 49 -
.../test/top_pattern/command/check-xml | 5 -
.../fpp-to-xml/test/top_pattern/command/clean | 5 -
.../top_pattern/command/pattern_command.fpp | 28 -
.../command/pattern_command.ref.txt | 0
.../fpp-to-xml/test/top_pattern/command/run | 5 -
.../test/top_pattern/command/run.sh | 5 -
.../test/top_pattern/command/tests.sh | 3 -
.../test/top_pattern/command/update-ref | 5 -
.../test/top_pattern/command/update-ref.sh | 5 -
.../command_list/CComponentAi.ref.xml | 19 -
.../command_list/CmdPortAi.ref.xml | 8 -
.../command_list/CmdRegPortAi.ref.xml | 8 -
.../command_list/CmdResponsePortAi.ref.xml | 8 -
.../command_list/CommandsComponentAi.ref.xml | 19 -
.../command_list/TTopologyAppAi.ref.xml | 37 -
.../test/top_pattern/command_list/check-xml | 5 -
.../test/top_pattern/command_list/clean | 5 -
.../command_list/pattern_command_list.fpp | 28 -
.../command_list/pattern_command_list.ref.txt | 0
.../test/top_pattern/command_list/run | 5 -
.../test/top_pattern/command_list/run.sh | 5 -
.../test/top_pattern/command_list/tests.sh | 3 -
.../test/top_pattern/command_list/update-ref | 5 -
.../top_pattern/command_list/update-ref.sh | 5 -
.../top_pattern/event/CComponentAi.ref.xml | 17 -
.../event/EventsComponentAi.ref.xml | 15 -
.../test/top_pattern/event/LogPortAi.ref.xml | 8 -
.../top_pattern/event/TTopologyAppAi.ref.xml | 27 -
.../test/top_pattern/event/TimePortAi.ref.xml | 12 -
.../test/top_pattern/event/check-xml | 5 -
.../fpp-to-xml/test/top_pattern/event/clean | 5 -
.../test/top_pattern/event/pattern_event.fpp | 23 -
.../top_pattern/event/pattern_event.ref.txt | 0
.../fpp-to-xml/test/top_pattern/event/run | 5 -
.../fpp-to-xml/test/top_pattern/event/run.sh | 5 -
.../test/top_pattern/event/tests.sh | 3 -
.../test/top_pattern/event/update-ref | 5 -
.../test/top_pattern/event/update-ref.sh | 5 -
.../event_list/CComponentAi.ref.xml | 17 -
.../event_list/EventsComponentAi.ref.xml | 15 -
.../top_pattern/event_list/LogPortAi.ref.xml | 8 -
.../event_list/TTopologyAppAi.ref.xml | 23 -
.../top_pattern/event_list/TimePortAi.ref.xml | 12 -
.../test/top_pattern/event_list/check-xml | 5 -
.../test/top_pattern/event_list/clean | 5 -
.../event_list/pattern_event_list.fpp | 23 -
.../event_list/pattern_event_list.ref.txt | 0
.../test/top_pattern/event_list/run | 5 -
.../test/top_pattern/event_list/run.sh | 5 -
.../test/top_pattern/event_list/tests.sh | 3 -
.../test/top_pattern/event_list/update-ref | 5 -
.../test/top_pattern/event_list/update-ref.sh | 5 -
.../top_pattern/health/CComponentAi.ref.xml | 16 -
.../health/HealthComponentAi.ref.xml | 16 -
.../top_pattern/health/PingPortAi.ref.xml | 8 -
.../top_pattern/health/TTopologyAppAi.ref.xml | 35 -
.../test/top_pattern/health/check-xml | 5 -
.../fpp-to-xml/test/top_pattern/health/clean | 5 -
.../top_pattern/health/pattern_health.fpp | 23 -
.../top_pattern/health/pattern_health.ref.txt | 0
.../fpp-to-xml/test/top_pattern/health/run | 5 -
.../fpp-to-xml/test/top_pattern/health/run.sh | 5 -
.../test/top_pattern/health/tests.sh | 3 -
.../test/top_pattern/health/update-ref | 5 -
.../test/top_pattern/health/update-ref.sh | 5 -
.../health_list/CComponentAi.ref.xml | 16 -
.../health_list/HealthComponentAi.ref.xml | 16 -
.../health_list/PingPortAi.ref.xml | 8 -
.../health_list/TTopologyAppAi.ref.xml | 27 -
.../test/top_pattern/health_list/check-xml | 5 -
.../test/top_pattern/health_list/clean | 5 -
.../health_list/pattern_health_list.fpp | 23 -
.../health_list/pattern_health_list.ref.txt | 0
.../test/top_pattern/health_list/run | 5 -
.../test/top_pattern/health_list/run.sh | 5 -
.../test/top_pattern/health_list/tests.sh | 3 -
.../test/top_pattern/health_list/update-ref | 5 -
.../top_pattern/health_list/update-ref.sh | 5 -
.../top_pattern/param/CComponentAi.ref.xml | 17 -
.../param/HealthComponentAi.ref.xml | 16 -
.../param/ParametersComponentAi.ref.xml | 17 -
.../test/top_pattern/param/PingPortAi.ref.xml | 8 -
.../top_pattern/param/PrmGetPortAi.ref.xml | 8 -
.../top_pattern/param/PrmSetPortAi.ref.xml | 8 -
.../top_pattern/param/TTopologyAppAi.ref.xml | 35 -
.../test/top_pattern/param/check-xml | 5 -
.../fpp-to-xml/test/top_pattern/param/clean | 5 -
.../test/top_pattern/param/pattern_param.fpp | 23 -
.../top_pattern/param/pattern_param.ref.txt | 0
.../fpp-to-xml/test/top_pattern/param/run | 5 -
.../fpp-to-xml/test/top_pattern/param/run.sh | 5 -
.../test/top_pattern/param/tests.sh | 3 -
.../test/top_pattern/param/update-ref | 5 -
.../test/top_pattern/param/update-ref.sh | 5 -
.../param_list/CComponentAi.ref.xml | 17 -
.../param_list/HealthComponentAi.ref.xml | 16 -
.../param_list/ParametersComponentAi.ref.xml | 17 -
.../top_pattern/param_list/PingPortAi.ref.xml | 8 -
.../param_list/PrmGetPortAi.ref.xml | 8 -
.../param_list/PrmSetPortAi.ref.xml | 8 -
.../param_list/TTopologyAppAi.ref.xml | 27 -
.../test/top_pattern/param_list/check-xml | 5 -
.../test/top_pattern/param_list/clean | 5 -
.../param_list/pattern_param_list.fpp | 23 -
.../param_list/pattern_param_list.ref.txt | 0
.../test/top_pattern/param_list/run | 5 -
.../test/top_pattern/param_list/run.sh | 5 -
.../test/top_pattern/param_list/tests.sh | 3 -
.../test/top_pattern/param_list/update-ref | 5 -
.../test/top_pattern/param_list/update-ref.sh | 5 -
.../telemetry/CComponentAi.ref.xml | 17 -
.../telemetry/TTopologyAppAi.ref.xml | 27 -
.../telemetry/TelemetryComponentAi.ref.xml | 15 -
.../top_pattern/telemetry/TimePortAi.ref.xml | 12 -
.../top_pattern/telemetry/TlmPortAi.ref.xml | 8 -
.../test/top_pattern/telemetry/check-xml | 5 -
.../test/top_pattern/telemetry/clean | 5 -
.../telemetry/pattern_telemetry.fpp | 23 -
.../telemetry/pattern_telemetry.ref.txt | 0
.../fpp-to-xml/test/top_pattern/telemetry/run | 5 -
.../test/top_pattern/telemetry/run.sh | 5 -
.../test/top_pattern/telemetry/tests.sh | 3 -
.../test/top_pattern/telemetry/update-ref | 5 -
.../test/top_pattern/telemetry/update-ref.sh | 5 -
.../telemetry_list/CComponentAi.ref.xml | 17 -
.../telemetry_list/TTopologyAppAi.ref.xml | 23 -
.../TelemetryComponentAi.ref.xml | 15 -
.../telemetry_list/TimePortAi.ref.xml | 12 -
.../telemetry_list/TlmPortAi.ref.xml | 8 -
.../test/top_pattern/telemetry_list/check-xml | 5 -
.../test/top_pattern/telemetry_list/clean | 5 -
.../telemetry_list/pattern_telemetry_list.fpp | 23 -
.../pattern_telemetry_list.ref.txt | 0
.../test/top_pattern/telemetry_list/run | 5 -
.../test/top_pattern/telemetry_list/run.sh | 5 -
.../test/top_pattern/telemetry_list/tests.sh | 3 -
.../top_pattern/telemetry_list/update-ref | 5 -
.../top_pattern/telemetry_list/update-ref.sh | 5 -
.../text_event/CComponentAi.ref.xml | 17 -
.../text_event/LogTextPortAi.ref.xml | 8 -
.../text_event/TTopologyAppAi.ref.xml | 27 -
.../text_event/TextEventsComponentAi.ref.xml | 15 -
.../top_pattern/text_event/TimePortAi.ref.xml | 12 -
.../test/top_pattern/text_event/check-xml | 5 -
.../test/top_pattern/text_event/clean | 5 -
.../text_event/pattern_text_event.fpp | 23 -
.../text_event/pattern_text_event.ref.txt | 0
.../test/top_pattern/text_event/run | 5 -
.../test/top_pattern/text_event/run.sh | 5 -
.../test/top_pattern/text_event/tests.sh | 3 -
.../test/top_pattern/text_event/update-ref | 5 -
.../test/top_pattern/text_event/update-ref.sh | 5 -
.../text_event_list/CComponentAi.ref.xml | 17 -
.../text_event_list/LogTextPortAi.ref.xml | 8 -
.../text_event_list/TTopologyAppAi.ref.xml | 23 -
.../TextEventsComponentAi.ref.xml | 15 -
.../text_event_list/TimePortAi.ref.xml | 12 -
.../top_pattern/text_event_list/check-xml | 5 -
.../test/top_pattern/text_event_list/clean | 5 -
.../pattern_text_event_list.fpp | 23 -
.../pattern_text_event_list.ref.txt | 0
.../test/top_pattern/text_event_list/run | 5 -
.../test/top_pattern/text_event_list/run.sh | 5 -
.../test/top_pattern/text_event_list/tests.sh | 3 -
.../top_pattern/text_event_list/update-ref | 5 -
.../top_pattern/text_event_list/update-ref.sh | 5 -
.../top_pattern/time/CComponentAi.ref.xml | 15 -
.../top_pattern/time/TTopologyAppAi.ref.xml | 27 -
.../top_pattern/time/TimeComponentAi.ref.xml | 15 -
.../test/top_pattern/time/TimePortAi.ref.xml | 12 -
.../test/top_pattern/time/check-xml | 5 -
.../fpp-to-xml/test/top_pattern/time/clean | 5 -
.../test/top_pattern/time/pattern_time.fpp | 21 -
.../top_pattern/time/pattern_time.ref.txt | 0
.../fpp-to-xml/test/top_pattern/time/run | 5 -
.../fpp-to-xml/test/top_pattern/time/run.sh | 5 -
.../fpp-to-xml/test/top_pattern/time/tests.sh | 3 -
.../test/top_pattern/time/update-ref | 5 -
.../test/top_pattern/time/update-ref.sh | 5 -
.../time_existing/CComponentAi.ref.xml | 15 -
.../time_existing/TTopologyAppAi.ref.xml | 27 -
.../time_existing/TimeComponentAi.ref.xml | 15 -
.../time_existing/TimePortAi.ref.xml | 12 -
.../test/top_pattern/time_existing/check-xml | 5 -
.../test/top_pattern/time_existing/clean | 5 -
.../time_existing/pattern_time_existing.fpp | 24 -
.../pattern_time_existing.ref.txt | 0
.../test/top_pattern/time_existing/run | 5 -
.../test/top_pattern/time_existing/run.sh | 5 -
.../test/top_pattern/time_existing/tests.sh | 3 -
.../test/top_pattern/time_existing/update-ref | 5 -
.../top_pattern/time_existing/update-ref.sh | 5 -
.../time_list/CComponentAi.ref.xml | 15 -
.../time_list/TTopologyAppAi.ref.xml | 23 -
.../time_list/TimeComponentAi.ref.xml | 15 -
.../top_pattern/time_list/TimePortAi.ref.xml | 12 -
.../test/top_pattern/time_list/check-xml | 5 -
.../test/top_pattern/time_list/clean | 5 -
.../time_list/pattern_time_list.fpp | 21 -
.../time_list/pattern_time_list.ref.txt | 0
.../fpp-to-xml/test/top_pattern/time_list/run | 5 -
.../test/top_pattern/time_list/run.sh | 5 -
.../test/top_pattern/time_list/tests.sh | 3 -
.../test/top_pattern/time_list/update-ref | 5 -
.../test/top_pattern/time_list/update-ref.sh | 5 -
compiler/tools/fpp-to-xml/test/update-ref | 9 -
.../fpp/src/main/scala/fpp-from-xml.scala | 53 -
.../tools/fpp/src/main/scala/fpp-to-xml.scala | 108 --
compiler/tools/fpp/src/main/scala/fpp.scala | 7 +-
671 files changed, 3 insertions(+), 12802 deletions(-)
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/ArrayXmlFppWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/ComponentXmlFppWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/EnumXmlFppWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/FormalParamsXmlFppWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/PortXmlFppWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/StructXmlFppWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/TlmPacketSetXmlWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/TopologyXmlFppWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/XmlFppWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/AnnotationXmlWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/ArrayXmlWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/ComponentXmlWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/ComputeXmlFiles.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/DpPortXmlLowering.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/EnumXmlWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/FormalParamsXmlWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/FormatXmlWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/PortXmlWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/StructXmlWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/TopologyXmlWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/TypeXmlWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/ValueXmlWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/XmlTags.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/XmlWriter.scala
delete mode 100644 compiler/lib/src/main/scala/codegen/XmlWriter/XmlWriterState.scala
delete mode 100644 compiler/tools/fpp-from-xml/test/.gitignore
delete mode 100644 compiler/tools/fpp-from-xml/test/array/array_enum.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/array/array_enum.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/array/array_qual_id.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/array/array_qual_id.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/array/array_string.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/array/array_string.xml
delete mode 100755 compiler/tools/fpp-from-xml/test/array/check-fpp
delete mode 100755 compiler/tools/fpp-from-xml/test/array/clean
delete mode 100755 compiler/tools/fpp-from-xml/test/array/run
delete mode 100644 compiler/tools/fpp-from-xml/test/array/tests.sh
delete mode 100755 compiler/tools/fpp-from-xml/test/array/update-ref
delete mode 100755 compiler/tools/fpp-from-xml/test/check-fpp
delete mode 100755 compiler/tools/fpp-from-xml/test/clean
delete mode 100755 compiler/tools/fpp-from-xml/test/component/check-fpp
delete mode 100755 compiler/tools/fpp-from-xml/test/component/clean
delete mode 100644 compiler/tools/fpp-from-xml/test/component/commands.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/component/commands.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/component/events.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/component/events.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/component/general_ports_active.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/component/general_ports_active.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/component/general_ports_passive.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/component/general_ports_passive.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/component/import_dictionary.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/component/import_dictionary.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/component/internal_ports.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/component/internal_ports.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/component/parameters.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/component/parameters.xml
delete mode 100755 compiler/tools/fpp-from-xml/test/component/run
delete mode 100644 compiler/tools/fpp-from-xml/test/component/special_ports.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/component/special_ports.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/component/telemetry.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/component/telemetry.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/component/tests.sh
delete mode 100755 compiler/tools/fpp-from-xml/test/component/update-ref
delete mode 100644 compiler/tools/fpp-from-xml/test/enum/.gitignore
delete mode 100755 compiler/tools/fpp-from-xml/test/enum/check-fpp
delete mode 100755 compiler/tools/fpp-from-xml/test/enum/clean
delete mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_missing_name.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_missing_name.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_ok.fpp
delete mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_ok.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_ok.xml
delete mode 100755 compiler/tools/fpp-from-xml/test/enum/run
delete mode 100644 compiler/tools/fpp-from-xml/test/enum/tests.sh
delete mode 100755 compiler/tools/fpp-from-xml/test/enum/update-ref
delete mode 100755 compiler/tools/fpp-from-xml/test/port/check-fpp
delete mode 100755 compiler/tools/fpp-from-xml/test/port/clean
delete mode 100644 compiler/tools/fpp-from-xml/test/port/port_cmd_resp.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/port/port_cmd_resp.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/port/port_ok.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/port/port_ok.xml
delete mode 100755 compiler/tools/fpp-from-xml/test/port/run
delete mode 100644 compiler/tools/fpp-from-xml/test/port/tests.sh
delete mode 100755 compiler/tools/fpp-from-xml/test/port/update-ref
delete mode 100644 compiler/tools/fpp-from-xml/test/scripts/run.sh
delete mode 100644 compiler/tools/fpp-from-xml/test/scripts/update-ref.sh
delete mode 100755 compiler/tools/fpp-from-xml/test/struct/check-fpp
delete mode 100755 compiler/tools/fpp-from-xml/test/struct/clean
delete mode 100644 compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.xml
delete mode 100755 compiler/tools/fpp-from-xml/test/struct/run
delete mode 100644 compiler/tools/fpp-from-xml/test/struct/struct_format.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/struct/struct_format.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/struct/struct_ok.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/struct/struct_ok.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/struct/tests.sh
delete mode 100755 compiler/tools/fpp-from-xml/test/struct/update-ref
delete mode 100755 compiler/tools/fpp-from-xml/test/syntax/check-fpp
delete mode 100755 compiler/tools/fpp-from-xml/test/syntax/clean
delete mode 100644 compiler/tools/fpp-from-xml/test/syntax/parse_error.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/syntax/parse_error.xml
delete mode 100755 compiler/tools/fpp-from-xml/test/syntax/run
delete mode 100644 compiler/tools/fpp-from-xml/test/syntax/tests.sh
delete mode 100755 compiler/tools/fpp-from-xml/test/syntax/update-ref
delete mode 100755 compiler/tools/fpp-from-xml/test/test
delete mode 100755 compiler/tools/fpp-from-xml/test/top/check-fpp
delete mode 100755 compiler/tools/fpp-from-xml/test/top/clean
delete mode 100644 compiler/tools/fpp-from-xml/test/top/fprime_ref.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/top/fprime_ref.xml
delete mode 100644 compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.fpp
delete mode 100644 compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.ref.txt
delete mode 100644 compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.xml
delete mode 100755 compiler/tools/fpp-from-xml/test/top/run
delete mode 100644 compiler/tools/fpp-from-xml/test/top/tests.sh
delete mode 100755 compiler/tools/fpp-from-xml/test/top/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/.gitignore
delete mode 100644 compiler/tools/fpp-to-xml/test/README.adoc
delete mode 100644 compiler/tools/fpp-to-xml/test/T.hpp
delete mode 100644 compiler/tools/fpp-to-xml/test/Time.hpp
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayEnum1ArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayEnum2ArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayEnumE1EnumAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayEnumE2EnumAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayOK1ArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayOK2ArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayOK3ArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayOK4ArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayOK5ArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArraySpecialCommentArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayStruct1ArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayStruct2ArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayStructMemberArrayArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayStructMemberArraySerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayStructS1SerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/ArrayStructS2SerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/array/array_enum.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/array/array_enum.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/array/array_ok.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/array/array_ok.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/array/array_special_comment.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/array/array_special_comment.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/array/array_struct.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/array/array_struct.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/array/array_struct_member_array.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/array/array_struct_member_array.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/array/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/array/clean
delete mode 100755 compiler/tools/fpp-to-xml/test/array/run
delete mode 100644 compiler/tools/fpp-to-xml/test/array/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/array/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/array/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/array/update-ref.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/component/CmdPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/CmdRegPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/CmdResponsePortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/CommandsComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/DpBufferRequestPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/DpBufferSendPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/DpGetPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/DpRequestPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/DpResponsePortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/DpSendPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/EmptyComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/EventsComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/GeneralPorts1ComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/GeneralPorts2ComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/InternalPortsComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/LogPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/LogTextPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/PPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/ParametersComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/PrmGetPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/PrmSetPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/ProductRecvPortAsyncComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/ProductRecvPortGuardedComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/SpecialPortsComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/TelemetryComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/TimePortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/TlmPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/TypesComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/Types_AArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/Types_AUseArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/Types_EEnumAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/Types_EUseArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/Types_SSerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/Types_SUseArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/component/Types_T.hpp
delete mode 100644 compiler/tools/fpp-to-xml/test/component/Types_TUseArrayAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/component/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/component/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/component/commands.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/component/commands.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/component/empty.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/component/empty.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/component/events.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/component/events.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/component/general_ports.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/component/general_ports.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/component/internal_ports.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/component/internal_ports.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/component/parameters.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/component/parameters.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/component/ports.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/component/ports.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/component/product_recv_port_async.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/component/product_recv_port_async.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/component/product_recv_port_guarded.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/component/product_recv_port_guarded.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/component/run
delete mode 100644 compiler/tools/fpp-to-xml/test/component/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/component/special_ports.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/component/special_ports.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/component/telemetry.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/component/telemetry.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/component/tests.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/component/types.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/component/types.names.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/component/types.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/component/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/component/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/DefaultEnumAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/ExplicitEnumAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/ImplicitEnumAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/SerializeTypeEnumAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/enum/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/enum/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/default.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/default.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/explicit.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/explicit.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/implicit.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/implicit.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/enum/run
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/serialize_type.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/serialize_type.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/enum/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/enum/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/port/A.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/port/A.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/port/AArrayAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/port/E.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/port/E.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/port/EEnumAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/port/PortKwdNamePortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/port/PortOK1PortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/port/PortOK2PortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/port/PortOK3PortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/port/PortOK4PortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/port/S.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/port/S.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/port/SSerializableAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/port/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/port/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/port/port_kwd_name.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/port/port_kwd_name.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/port/port_ok.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/port/port_ok.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/port/run
delete mode 100644 compiler/tools/fpp-to-xml/test/port/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/port/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/port/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/port/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/scripts/check-xml.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/scripts/clean.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/scripts/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/scripts/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/EEnumAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/IncludedSerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/IncludingSerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/StructAbsTypeSerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/StructDefaultSerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/StructEnumMemberSerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/StructFormatSerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/StructModules1SerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/StructModules2SerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/StructModules3SerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/StructOK1SerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/StructOK2SerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/StructStringArraySerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/StructStringSerializableAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/struct/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/struct/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/duplicate_xml_file.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/duplicate_xml_file.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/empty_struct.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/empty_struct.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/enum.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/enum.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/include.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/include.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/include/included.fppi
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/output_dir/StructOutputDirSerializableAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/output_dir/struct_output_dir.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/output_dir/struct_output_dir.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/struct/run
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_abs_type.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_abs_type.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_default.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_default.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_enum_member.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_enum_member.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_format.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_format.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_modules.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_modules.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_ok.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_ok.names.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_ok.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_string.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_string.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_string_array.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/struct_string_array.ref.txt
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/struct/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/struct/update-ref.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/test
delete mode 100644 compiler/tools/fpp-to-xml/test/top_basic/C1ComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_basic/C2ComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_basic/PPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_basic/TTopologyAppAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_basic/basic.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_basic/basic.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_basic/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_basic/clean
delete mode 100755 compiler/tools/fpp-to-xml/test/top_basic/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_basic/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_basic/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_basic/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_basic/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/basic/AComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/basic/BComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/basic/PPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/basic/TTopologyAppAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/basic/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/basic/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/basic/import_basic.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/basic/import_basic.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/basic/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/basic/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/basic/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/basic/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/basic/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/merge/AComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/merge/BComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/merge/PPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/merge/TTopologyAppAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/merge/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/merge/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/merge/import_merge.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/merge/import_merge.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/merge/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/merge/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/merge/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/merge/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/merge/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/pattern/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/pattern/TTopologyAppAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/pattern/TimeComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/pattern/TimePortAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/pattern/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/pattern/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/pattern/import_pattern.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/pattern/import_pattern.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/pattern/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/pattern/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/pattern/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/pattern/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/pattern/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/port_num/AComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/port_num/BComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/port_num/PPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/port_num/TTopologyAppAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/port_num/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/port_num/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/port_num/import_port_num.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/port_num/import_port_num.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/port_num/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/port_num/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/port_num/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/port_num/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/port_num/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/private/AComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/private/BComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/private/PPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/private/TTopologyAppAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/private/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/private/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/private/import_private.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/private/import_private.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/private/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/private/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/private/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/private/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/private/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/transitive/AComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/transitive/BComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/transitive/PPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/transitive/TTopologyAppAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/transitive/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/transitive/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/transitive/import_transitive.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/transitive/import_transitive.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/transitive/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/transitive/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/transitive/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_import/transitive/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_import/transitive/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/general/PPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/general/SourceComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/general/TTopologyAppAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/general/TargetComponentAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_numbering/general/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_numbering/general/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/general/numbering_general.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/general/numbering_general.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_numbering/general/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/general/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/general/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_numbering/general/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/general/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/matched/PPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/matched/SourceComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/matched/TTopologyAppAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/matched/TargetComponentAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_numbering/matched/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_numbering/matched/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/matched/numbering_matched.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/matched/numbering_matched.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_numbering/matched/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/matched/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/matched/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_numbering/matched/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/matched/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/unmatched/.gitignore
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/unmatched/TTopologyAppAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_numbering/unmatched/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_numbering/unmatched/clean
delete mode 100755 compiler/tools/fpp-to-xml/test/top_numbering/unmatched/gen-layout
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/unmatched/numbering_unmatched.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/unmatched/numbering_unmatched.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_numbering/unmatched/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/unmatched/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/unmatched/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_numbering/unmatched/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_numbering/unmatched/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command/CmdPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command/CmdRegPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command/CmdResponsePortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command/CommandsComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command/TTopologyAppAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/command/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/command/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command/pattern_command.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command/pattern_command.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/command/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/command/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command_list/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command_list/CmdPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command_list/CmdRegPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command_list/CmdResponsePortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command_list/CommandsComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command_list/TTopologyAppAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/command_list/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/command_list/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command_list/pattern_command_list.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command_list/pattern_command_list.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/command_list/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command_list/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command_list/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/command_list/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/command_list/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event/EventsComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event/LogPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event/TTopologyAppAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event/TimePortAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/event/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/event/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event/pattern_event.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event/pattern_event.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/event/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/event/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event_list/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event_list/EventsComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event_list/LogPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event_list/TTopologyAppAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event_list/TimePortAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/event_list/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/event_list/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event_list/pattern_event_list.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event_list/pattern_event_list.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/event_list/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event_list/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event_list/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/event_list/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/event_list/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health/HealthComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health/PingPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health/TTopologyAppAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/health/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/health/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health/pattern_health.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health/pattern_health.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/health/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/health/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health_list/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health_list/HealthComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health_list/PingPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health_list/TTopologyAppAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/health_list/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/health_list/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health_list/pattern_health_list.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health_list/pattern_health_list.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/health_list/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health_list/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health_list/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/health_list/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/health_list/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param/HealthComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param/ParametersComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param/PingPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param/PrmGetPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param/PrmSetPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param/TTopologyAppAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/param/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/param/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param/pattern_param.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param/pattern_param.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/param/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/param/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param_list/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param_list/HealthComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param_list/ParametersComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param_list/PingPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param_list/PrmGetPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param_list/PrmSetPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param_list/TTopologyAppAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/param_list/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/param_list/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param_list/pattern_param_list.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param_list/pattern_param_list.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/param_list/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param_list/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param_list/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/param_list/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/param_list/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TTopologyAppAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TelemetryComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TimePortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TlmPortAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/pattern_telemetry.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/pattern_telemetry.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TTopologyAppAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TelemetryComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TimePortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TlmPortAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/pattern_telemetry_list.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/pattern_telemetry_list.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event/LogTextPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event/TTopologyAppAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event/TextEventsComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event/TimePortAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/text_event/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/text_event/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event/pattern_text_event.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event/pattern_text_event.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/text_event/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/text_event/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/LogTextPortAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/TTopologyAppAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/TextEventsComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/TimePortAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/pattern_text_event_list.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/pattern_text_event_list.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time/TTopologyAppAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time/TimeComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time/TimePortAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/time/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/time/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time/pattern_time.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time/pattern_time.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/time/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/time/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_existing/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_existing/TTopologyAppAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_existing/TimeComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_existing/TimePortAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/time_existing/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/time_existing/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_existing/pattern_time_existing.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_existing/pattern_time_existing.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/time_existing/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_existing/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_existing/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/time_existing/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_existing/update-ref.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_list/CComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_list/TTopologyAppAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_list/TimeComponentAi.ref.xml
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_list/TimePortAi.ref.xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/time_list/check-xml
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/time_list/clean
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_list/pattern_time_list.fpp
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_list/pattern_time_list.ref.txt
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/time_list/run
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_list/run.sh
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_list/tests.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/top_pattern/time_list/update-ref
delete mode 100644 compiler/tools/fpp-to-xml/test/top_pattern/time_list/update-ref.sh
delete mode 100755 compiler/tools/fpp-to-xml/test/update-ref
delete mode 100644 compiler/tools/fpp/src/main/scala/fpp-from-xml.scala
delete mode 100644 compiler/tools/fpp/src/main/scala/fpp-to-xml.scala
diff --git a/compiler/install b/compiler/install
index 322dc46a6..f7b668826 100755
--- a/compiler/install
+++ b/compiler/install
@@ -56,13 +56,11 @@ check
depend
filenames
format
-from-xml
locate-defs
locate-uses
syntax
to-cpp
to-json
-to-xml
to-dict
to-layout
"
diff --git a/compiler/lib/src/main/scala/codegen/ComputeGeneratedFiles.scala b/compiler/lib/src/main/scala/codegen/ComputeGeneratedFiles.scala
index 9177704e6..6bda2be0b 100644
--- a/compiler/lib/src/main/scala/codegen/ComputeGeneratedFiles.scala
+++ b/compiler/lib/src/main/scala/codegen/ComputeGeneratedFiles.scala
@@ -11,11 +11,10 @@ object ComputeGeneratedFiles {
def getAutocodeFiles(tul: List[Ast.TransUnit]): Result.Result[List[String]] =
for {
a <- enterSymbols(tul)
- xmlFiles <- getXmlFiles(a, tul)
cppFiles <- getAutocodeCppFiles(a, tul)
dictFiles <- getDictionaryJsonFiles(a, tul)
}
- yield xmlFiles ++ cppFiles ++ dictFiles
+ yield cppFiles ++ dictFiles
/** Computes component implementation files */
def getImplFiles(tul: List[Ast.TransUnit]): Result.Result[List[String]] =
@@ -104,17 +103,6 @@ object ComputeGeneratedFiles {
yield s.locationMap.toList.map(_._1)
}
- private def getXmlFiles(a: Analysis, tul: List[Ast.TransUnit]):
- Result.Result[List[String]] =
- for {
- s <- ComputeXmlFiles.visitList(
- XmlWriterState(a),
- tul,
- ComputeXmlFiles.transUnit
- )
- }
- yield s.locationMap.toList.map(_._1)
-
private def getDictionaryJsonFiles(a: Analysis, tul: List[Ast.TransUnit]):
Result.Result[List[String]] =
for {
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/ArrayXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/ArrayXmlFppWriter.scala
deleted file mode 100644
index 37d7e3145..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlFppWriter/ArrayXmlFppWriter.scala
+++ /dev/null
@@ -1,79 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.ast._
-import fpp.compiler.analysis
-import fpp.compiler.codegen._
-import fpp.compiler.util._
-import scala.xml.Node
-
-/** Writes out an F Prime XML array as FPP source */
-object ArrayXmlFppWriter extends LineUtils {
-
- def writeFile(file: XmlFppWriter.File): XmlFppWriter.Result =
- for (tuMember <- FppBuilder.tuMember(file))
- yield FppWriter.tuMember(tuMember)
-
- private object FppBuilder {
-
- /** Translates an XML type to an FPP type name */
- def translateType(file: XmlFppWriter.File): Node => Result.Result[Ast.TypeName] = file.translateType(node => Right(node.text)) _
-
- /** Translates a block of default values from FPP to XML */
- def translateDefaults(node: scala.xml.Node, tn: Ast.TypeName): (Option[AstNode[Ast.Expr]], List[String]) = {
- val xmlElements = node \ "value"
- val arrayNodeOpt = for {
- elementNodes <- Options.map(
- xmlElements.toList,
- ((node: scala.xml.Node) => XmlFppWriter.FppBuilder.translateValue(node.text, tn))
- )
- } yield AstNode.create(Ast.ExprArray(elementNodes))
- val note = arrayNodeOpt match {
- case None =>
- val xmlArray = "[ " ++ xmlElements.map(_.text).mkString(", ") ++ " ]"
- val s = "could not translate array value " ++ xmlArray
- List(XmlFppWriter.constructNote(s))
- case _ => Nil
- }
- (arrayNodeOpt, note)
- }
-
- /** Extracts array definitions from struct members */
- def defArrayAnnotated(file: XmlFppWriter.File):
- Result.Result[Ast.Annotated[Ast.DefArray]] =
- for {
- name <- file.getAttribute(file.elem, "name")
- comment <- file.getComment(file.elem)
- xmlSize <- file.getSingleChild(file.elem, "size")
- xmlEltType <- file.getSingleChild(file.elem, "type")
- eltType <- translateType(file)(xmlEltType)
- xmlDefault <- file.getSingleChild(file.elem, "default")
- xmlFormat <- file.getSingleChild(file.elem, "format")
- }
- yield {
- val (fppDefaultsOpt, note1) = translateDefaults(xmlDefault, eltType)
- val (fppFormatOpt, note2) =
- XmlFppWriter.FppBuilder.translateFormatOpt(Some(xmlFormat.text))
- val note = note1 ++ note2
- val node = Ast.DefArray(
- name,
- AstNode.create(Ast.ExprLiteralInt(xmlSize.text)),
- AstNode.create(eltType),
- fppDefaultsOpt,
- fppFormatOpt.map(AstNode.create(_))
- )
- (note ++ comment, node, Nil)
- }
-
- /** Generates the TU member */
- def tuMember(file: XmlFppWriter.File): Result.Result[Ast.TUMember] =
- for (array <- defArrayAnnotated(file))
- yield XmlFppWriter.tuMember(
- array,
- Ast.TUMember.DefArray.apply,
- Ast.ModuleMember.DefArray.apply,
- file
- )
-
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/ComponentXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/ComponentXmlFppWriter.scala
deleted file mode 100644
index 386df1414..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlFppWriter/ComponentXmlFppWriter.scala
+++ /dev/null
@@ -1,531 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.ast._
-import fpp.compiler.codegen._
-import fpp.compiler.util._
-import scala.xml.Node
-
-/** Writes out an F Prime XML component as FPP source */
-object ComponentXmlFppWriter extends LineUtils {
-
- /** Writes a component file */
- def writeComponentFile(file: XmlFppWriter.File): XmlFppWriter.Result =
- for (tuMember <- FppBuilder.tuMember(file))
- yield FppWriter.tuMember(tuMember)
-
- /** Writes an imported file */
- private def writeImportedFile
- (memberGenerator: FppBuilder.MemberGenerator)
- (file: XmlFppWriter.File): XmlFppWriter.Result =
- for (members <- FppBuilder.mapChildren(file, memberGenerator))
- yield Line.blankSeparated (FppWriter.componentMember) (members)
-
- /** Writes a commands file */
- val writeCommandsFile: XmlFppWriter.File => XmlFppWriter.Result = writeImportedFile(FppBuilder.MemberGenerator.Command) _
-
- /** Writes a params file */
- val writeParamsFile: XmlFppWriter.File => XmlFppWriter.Result = writeImportedFile(FppBuilder.MemberGenerator.Param) _
-
- /** Writes a ports file */
- val writePortsFile: XmlFppWriter.File => XmlFppWriter.Result = writeImportedFile(FppBuilder.MemberGenerator.Port) _
-
- /** Writes a tlm channels file */
- val writeTlmChannelsFile: XmlFppWriter.File => XmlFppWriter.Result = writeImportedFile(FppBuilder.MemberGenerator.TlmChannel) _
-
- /** Writes an events file */
- val writeEventsFile: XmlFppWriter.File => XmlFppWriter.Result = writeImportedFile(FppBuilder.MemberGenerator.Event) _
-
- /** Writes an internal ports file */
- val writeInternalPortsFile: XmlFppWriter.File => XmlFppWriter.Result = writeImportedFile(FppBuilder.MemberGenerator.InternalPort) _
-
- /** Builds FPP for translating Component XML */
- private object FppBuilder {
-
- /** Generates the TU member */
- def tuMember(file: XmlFppWriter.File): Result.Result[Ast.TUMember] =
- for {
- component <- defComponentAnnotated(file)
- }
- yield XmlFppWriter.tuMember(
- component,
- Ast.TUMember.DefComponent.apply,
- Ast.ModuleMember.DefComponent.apply,
- file
- )
-
- /** Component member generator */
- trait MemberGenerator {
-
- val xmlName: String
-
- /** Generates a member node */
- def generateMemberNode(file: XmlFppWriter.File, node: scala.xml.Node):
- Result.Result[Ast.Annotated[Ast.ComponentMember.Node]] =
- Left(file.semanticError(s"$xmlName not implemented"))
-
- /** Generates a list of member nodes */
- def generateMemberNodes(file: XmlFppWriter.File, node: scala.xml.Node):
- Result.Result[List[Ast.Annotated[Ast.ComponentMember.Node]]] =
- for (node <- generateMemberNode(file, node))
- yield List(node)
-
- /** Generates a list of members */
- final def generateMembers(file: XmlFppWriter.File, node: scala.xml.Node): Result.Result[List[Ast.ComponentMember]] =
- generateMemberNodes(file, node) match {
- case Left(error) => Left(error)
- case Right(aNodes) => Right(aNodes.map(Ast.ComponentMember(_)))
- }
-
- }
-
- /** Constructs an enum component member */
- def constructEnumMember(enumAnnotated: Ast.Annotated[Ast.DefEnum]):
- Ast.Annotated[Ast.ComponentMember.DefEnum] = {
- val (pre, e, post) = enumAnnotated
- (pre, Ast.ComponentMember.DefEnum(AstNode.create(e)), post)
- }
-
- /** Extracts enum definitions in argument types */
- def translateArgEnums(file: XmlFppWriter.File, xmlNode: scala.xml.Node):
- Result.Result[List[Ast.Annotated[Ast.ComponentMember.DefEnum]]] =
- for (enums <- FormalParamsXmlFppWriter.defEnumAnnotatedList(file, xmlNode))
- yield enums.map(constructEnumMember)
-
- /** Translates an optional queue full attribute */
- def translateQueueFullOpt(file: XmlFppWriter.File, xmlNode: scala.xml.Node):
- Result.Result[Option[Ast.QueueFull]] = {
- val xmlQueueFullOpt = XmlFppWriter.getAttributeOpt(xmlNode, "full")
- xmlQueueFullOpt match {
- case Some("assert") => Right(Some(Ast.QueueFull.Assert))
- case Some("block") => Right(Some(Ast.QueueFull.Block))
- case Some("drop") => Right(Some(Ast.QueueFull.Drop))
- case Some(xmlQueueFull) =>
- Left(file.semanticError(s"invalid queue full behavior $xmlQueueFull"))
- case None => Right(None)
- }
- }
-
- /** Translates an optional queue full attribute as an AST node */
- def translateQueueFullNodeOpt(file: XmlFppWriter.File, xmlNode: scala.xml.Node):
- Result.Result[Option[AstNode[Ast.QueueFull]]] =
- for (qfo <- translateQueueFullOpt(file, xmlNode))
- yield qfo.map(AstNode.create(_))
-
- /** Translates an XML type to an FPP type name */
- def translateType(file: XmlFppWriter.File): Node => Result.Result[Ast.TypeName] =
- file.translateType(node => file.getAttribute(node, "data_type")) _
-
- case object MemberGenerator {
-
- case object Include extends MemberGenerator {
-
- val xmlName = "import_dictionary"
-
- override def generateMemberNode(file: XmlFppWriter.File, xmlNode: scala.xml.Node) =
- for {
- child <- file.getUniqueChild(xmlNode)
- }
- yield {
- val path = child.toString
- val fppPath = path.replaceAll("\\.xml$", ".fppi")
- val fileName = fppPath.split("/").toList.reverse.head
- val fileNameNode = AstNode.create(fileName)
- val specIncludeNode = AstNode.create(Ast.SpecInclude(fileNameNode))
- val memberNode = Ast.ComponentMember.SpecInclude(specIncludeNode)
- val annotation = if (fileName == fppPath) Nil else {
- val s = s"original path was $path"
- List(XmlFppWriter.constructNote(s))
- }
- (annotation, memberNode, Nil)
- }
-
- }
-
- case object Port extends MemberGenerator {
-
- val xmlName = "port"
-
- def general(file: XmlFppWriter.File, xmlNode: scala.xml.Node): Result.Result[Ast.SpecPortInstance.General] = {
- import Ast.SpecPortInstance._
- for {
- xmlKind <- file.getAttribute(xmlNode, "kind")
- kind <- xmlKind match {
- case "async_input" => Right(AsyncInput)
- case "guarded_input" => Right(GuardedInput)
- case "output" => Right(Output)
- case "sync_input" => Right(SyncInput)
- case _ => Left(file.semanticError(s"invalid port kind $xmlKind"))
- }
- name <- file.getAttribute(xmlNode, "name")
- xmlPort <- file.getAttribute(xmlNode, "data_type")
- queueFull <- translateQueueFullOpt(file, xmlNode)
- }
- yield {
- val size = XmlFppWriter.getAttributeOpt(xmlNode, "max_number").map(
- text => AstNode.create(Ast.ExprLiteralInt(text))
- )
- val port = xmlPort match {
- case "Serial" => None
- case _ => Some(XmlFppWriter.FppBuilder.translateQualIdent(xmlPort))
- }
- val priority = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "priority")
- General(kind, name, size, port, priority, queueFull.map(AstNode.create(_)))
- }
- }
-
- def special(file: XmlFppWriter.File, xmlNode: scala.xml.Node, role: String):
- Result.Result[Ast.SpecPortInstance.Special] = {
- import Ast.SpecPortInstance._
- for {
- kind <- role match {
- case "Cmd" => Right(CommandRecv)
- case "CmdRegistration" => Right(CommandReg)
- case "CmdResponse" => Right(CommandResp)
- case "LogEvent" => Right(Ast.SpecPortInstance.Event)
- case "ParamGet" => Right(ParamGet)
- case "ParamSet" => Right(ParamSet)
- case "Telemetry" => Right(Telemetry)
- case "LogTextEvent" => Right(TextEvent)
- case "TimeGet" => Right(TimeGet)
- case _ => Left(file.semanticError(s"invalid role $role"))
- }
- name <- file.getAttribute(xmlNode, "name")
- }
- yield Special(None, kind, name, None, None)
- }
-
- override def generateMemberNode(file: XmlFppWriter.File, xmlNode: scala.xml.Node) = {
- for {
- comment <- file.getComment(xmlNode)
- member <- XmlFppWriter.getAttributeOpt(xmlNode, "role") match {
- case Some(role) => special(file, xmlNode, role)
- case None => general(file, xmlNode)
- }
- }
- yield {
- val node = AstNode.create(member)
- val memberNode = Ast.ComponentMember.SpecPortInstance(node)
- (comment, memberNode, Nil)
- }
- }
-
- }
-
- case object InternalPort extends MemberGenerator {
-
- val xmlName = "internal_interface"
-
- override def generateMemberNodes(file: XmlFppWriter.File, xmlNode: scala.xml.Node) =
- for {
- annotatedEnumMemberNodes <- translateArgEnums(file, xmlNode)
- comment <- file.getComment(xmlNode)
- name <- file.getAttribute(xmlNode, "name")
- params <- FormalParamsXmlFppWriter.formalParamList(file, xmlNode)
- queueFull <- translateQueueFullOpt(file, xmlNode)
- }
- yield {
- val annotatedPortMemberNode = {
- val priority = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "priority")
- val internalPort = Ast.SpecInternalPort(name, params, priority, queueFull)
- val node = AstNode.create(internalPort)
- val memberNode = Ast.ComponentMember.SpecInternalPort(node)
- (comment, memberNode, Nil)
- }
- annotatedEnumMemberNodes :+ annotatedPortMemberNode
- }
-
- }
-
- case object Command extends MemberGenerator {
-
- val xmlName = "command"
-
- override def generateMemberNodes(file: XmlFppWriter.File, xmlNode: scala.xml.Node) =
- for {
- xmlKind <- file.getAttribute(xmlNode, "kind")
- kind <- xmlKind match {
- case "async" => Right(Ast.SpecCommand.Async)
- case "guarded" => Right(Ast.SpecCommand.Guarded)
- case "sync" => Right(Ast.SpecCommand.Sync)
- case _ => Left(file.semanticError(s"invalid command kind $xmlKind"))
- }
- annotatedEnumMemberNodes <- translateArgEnums(file, xmlNode)
- comment <- file.getComment(xmlNode)
- name <- file.getAttribute(xmlNode, "mnemonic")
- params <- FormalParamsXmlFppWriter.formalParamList(file, xmlNode)
- queueFull <- translateQueueFullNodeOpt(file, xmlNode)
- }
- yield {
- val annotatedCommandMemberNode = {
- val priority = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "priority")
- val opcode = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "opcode")
- val command = Ast.SpecCommand(
- kind,
- name,
- params,
- opcode,
- priority,
- queueFull
- )
- val node = AstNode.create(command)
- val memberNode = Ast.ComponentMember.SpecCommand(node)
- (comment, memberNode, Nil)
- }
- annotatedEnumMemberNodes :+ annotatedCommandMemberNode
- }
-
- }
-
- case object Event extends MemberGenerator {
-
- val xmlName = "event"
-
- override def generateMemberNodes(file: XmlFppWriter.File, xmlNode: scala.xml.Node) =
- for {
- annotatedEnumMemberNodes <- translateArgEnums(file, xmlNode)
- comment <- file.getComment(xmlNode)
- name <- file.getAttribute(xmlNode, "name")
- params <- FormalParamsXmlFppWriter.formalParamList(file, xmlNode)
- xmlSeverity <- file.getAttribute(xmlNode, "severity")
- severity <- xmlSeverity match {
- case "ACTIVITY_HI" => Right(Ast.SpecEvent.ActivityHigh)
- case "ACTIVITY_LO" => Right(Ast.SpecEvent.ActivityLow)
- case "COMMAND" => Right(Ast.SpecEvent.Command)
- case "DIAGNOSTIC" => Right(Ast.SpecEvent.Diagnostic)
- case "FATAL" => Right(Ast.SpecEvent.Fatal)
- case "WARNING_HI" => Right(Ast.SpecEvent.WarningHigh)
- case "WARNING_LO" => Right(Ast.SpecEvent.WarningLow)
- case _ => Left(file.semanticError(s"invalid severity $xmlSeverity"))
- }
- xmlFormat <- file.getAttribute(xmlNode, "format_string")
- }
- yield {
- val annotatedEventMemberNode = {
- val id = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "id")
- val (formatOpt, note) =
- XmlFppWriter.FppBuilder.translateFormatOpt(Some(xmlFormat))
- val format = formatOpt match {
- case Some(format) => format
- case None => "{}"
- }
- val throttle = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "throttle")
- val event = Ast.SpecEvent(
- name,
- params,
- severity,
- id,
- AstNode.create(format),
- throttle
- )
- val node = AstNode.create(event)
- val memberNode = Ast.ComponentMember.SpecEvent(node)
- (note ++ comment, memberNode, Nil)
- }
- annotatedEnumMemberNodes :+ annotatedEventMemberNode
- }
-
- }
-
- case object Param extends MemberGenerator {
-
- val xmlName = "parameter"
-
- override def generateMemberNodes(file: XmlFppWriter.File, xmlNode: scala.xml.Node) = {
- for {
- enumAnnotatedOpt <- XmlFppWriter.FppBuilder.InlineEnumBuilder.defEnumAnnotatedOpt(file)(xmlNode)
- comment <- file.getComment(xmlNode)
- name <- file.getAttribute(xmlNode, "name")
- typeName <- translateType(file)(xmlNode)
- }
- yield {
- val id = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "id")
- val xmlDefaultOpt = XmlFppWriter.getAttributeOpt(xmlNode, "default")
- val defaultOpt = xmlDefaultOpt.flatMap(
- s => XmlFppWriter.FppBuilder.translateValue(s, typeName)
- )
- val defaultNote = (xmlDefaultOpt, defaultOpt) match {
- case (Some(xmlDefault), None) =>
- val s = s"could not translate default value $xmlDefault"
- List(XmlFppWriter.constructNote(s))
- case _ => Nil
- }
- val setOpcode = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "set_opcode")
- val saveOpcode = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "save_opcode")
- val isExternal = XmlFppWriter.getAttributeOpt(xmlNode, "external").isDefined
-
- val paramMemberNode = {
- val param = Ast.SpecParam(
- name,
- AstNode.create(typeName),
- defaultOpt,
- id,
- setOpcode,
- saveOpcode,
- isExternal
- )
- val node = AstNode.create(param)
- val memberNode = Ast.ComponentMember.SpecParam(node)
- (defaultNote ++ comment, memberNode, Nil)
- }
- enumAnnotatedOpt match {
- case Some(enumAnnotated) =>
- val enumMemberNode = constructEnumMember(enumAnnotated)
- List(enumMemberNode, paramMemberNode)
- case None => List(paramMemberNode)
- }
- }
- }
-
- }
-
- case object TlmChannel extends MemberGenerator {
-
- val xmlName = "channel"
-
- override def generateMemberNodes(file: XmlFppWriter.File, xmlNode: scala.xml.Node) = {
- type Limits = List[Ast.SpecTlmChannel.Limit]
- def translateLimits(
- direction: String,
- typeName: Ast.TypeName,
- channel: String
- ): Result.Result[Limits] = {
- import Ast.SpecTlmChannel._
- val pairs = List(
- (Red, "red"),
- (Orange, "orange"),
- (Yellow, "yellow")
- ).map(pair => {
- val (kind, name) = pair
- val xmlName = s"${direction}_$name"
- XmlFppWriter.getAttributeOpt(xmlNode, xmlName).map((kind, _))
- }).filter(_.isDefined).map(_.get)
- Result.foldLeft (pairs) (Nil: Limits) ((result, pair) => {
- val (kind, xmlValue) = pair
- XmlFppWriter.FppBuilder.translateValue(xmlValue, typeName) match {
- case Some(exprNode) =>
- val kindNode = AstNode.create(kind)
- Right(result :+ (kindNode, exprNode))
- case None =>
- Left(file.semanticError(s"non-numeric type in limit for channel $channel"))
- }
- })
- }
- for {
- enumAnnotatedOpt <- XmlFppWriter.FppBuilder.InlineEnumBuilder.defEnumAnnotatedOpt(file)(xmlNode)
- name <- file.getAttribute(xmlNode, "name")
- comment <- file.getComment(xmlNode)
- typeName <- translateType(file)(xmlNode)
- update <- XmlFppWriter.getAttributeOpt(xmlNode, "update") match {
- case None => Right(None)
- case Some("always") => Right(Some(Ast.SpecTlmChannel.Always))
- case Some("on_change") => Right(Some(Ast.SpecTlmChannel.OnChange))
- case Some(xmlUpdate) => Left(file.semanticError(s"invalid update specifier $xmlUpdate"))
- }
- lowLimits <- translateLimits("low", typeName, name)
- highLimits <- translateLimits("high", typeName, name)
- }
- yield {
- val id = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "id")
- val xmlFormat = XmlFppWriter.getAttributeOpt(xmlNode, "format_string")
- val (format, formatNote) =
- XmlFppWriter.FppBuilder.translateFormatOpt(xmlFormat)
- val channel = Ast.SpecTlmChannel(
- name,
- AstNode.create(typeName),
- id,
- update,
- format.map(AstNode.create(_)),
- lowLimits,
- highLimits
- )
- val node = AstNode.create(channel)
- val memberNode = Ast.ComponentMember.SpecTlmChannel(node)
- val tlmChannelMemberNode = (formatNote ++ comment, memberNode, Nil)
- enumAnnotatedOpt match {
- case Some(enumAnnotated) =>
- val enumMemberNode = constructEnumMember(enumAnnotated)
- List(enumMemberNode, tlmChannelMemberNode)
- case None => List(tlmChannelMemberNode)
- }
- }
- }
-
- }
-
- }
-
- /** Member list result */
- type MemListRes = Result.Result[List[Ast.ComponentMember]]
-
- /** Member list list result */
- type MemListListRes = Result.Result[List[List[Ast.ComponentMember]]]
-
- /** Maps a node generator onto children at the top level */
- def mapChildren(file: XmlFppWriter.File, memberGenerator: MemberGenerator): MemListRes =
- mapChildrenOfNodeOpt(file, Some(file.elem), memberGenerator)
-
- /** Maps a node generator onto the children of an XML node */
- def mapChildrenOfNodeOpt(
- file: XmlFppWriter.File,
- nodeOpt: Option[scala.xml.Node],
- memberGenerator: MemberGenerator
- ): MemListRes =
- for {
- list <- nodeOpt.fold(Right(Nil): MemListListRes)(node => {
- val children = node \ memberGenerator.xmlName
- Result.map(children.toList, memberGenerator.generateMembers(file, _))
- })
- } yield list.flatten
-
- /** Extracts component members */
- def componentMemberList(file: XmlFppWriter.File):
- Result.Result[List[Ast.ComponentMember]] = {
- def mapChildrenOfName(args: (String, MemberGenerator)): MemListRes = {
- val (name, memberGenerator) = args
- for {
- nodeOpt <- file.getSingleChildOpt(file.elem, name)
- result <- mapChildrenOfNodeOpt(file, nodeOpt, memberGenerator)
- } yield result
- }
- for {
- includes <- mapChildren(file, MemberGenerator.Include)
- lists <- Result.map(
- List(
- ("ports", MemberGenerator.Port),
- ("internal_interfaces", MemberGenerator.InternalPort),
- ("commands", MemberGenerator.Command),
- ("events", MemberGenerator.Event),
- ("parameters", MemberGenerator.Param),
- ("telemetry", MemberGenerator.TlmChannel)
- ),
- mapChildrenOfName _
- )
- }
- yield (includes :: lists).flatten
- }
-
- /** Translates a component kind */
- def translateKind(file: XmlFppWriter.File, xmlKind: String):
- Result.Result[Ast.ComponentKind] =
- xmlKind match {
- case "active" => Right(Ast.ComponentKind.Active)
- case "passive" => Right(Ast.ComponentKind.Passive)
- case "queued" => Right(Ast.ComponentKind.Queued)
- case _ => Left(file.semanticError(s"invalid component kind $xmlKind"))
- }
-
- /** Translates the component */
- def defComponentAnnotated(file: XmlFppWriter.File):
- Result.Result[Ast.Annotated[Ast.DefComponent]] =
- for {
- comment <- file.getComment(file.elem)
- xmlKind <- file.getAttribute(file.elem, "kind")
- kind <- translateKind(file, xmlKind)
- name <- file.getAttribute(file.elem, "name")
- members <- componentMemberList(file)
- }
- yield (comment, Ast.DefComponent(kind, name, members), Nil)
-
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/EnumXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/EnumXmlFppWriter.scala
deleted file mode 100644
index 7d6be240c..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlFppWriter/EnumXmlFppWriter.scala
+++ /dev/null
@@ -1,88 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.ast._
-import fpp.compiler.codegen._
-import fpp.compiler.util._
-
-/** Writes out an F Prime XML enum as FPP source */
-object EnumXmlFppWriter extends LineUtils {
-
- def writeFile(file: XmlFppWriter.File): XmlFppWriter.Result =
- for (tuMember <- FppBuilder.tuMember(file))
- yield FppWriter.tuMember(tuMember)
-
- private object FppBuilder {
-
- def annotation(file: XmlFppWriter.File): List[String] = {
- // Not supported in F Prime XML
- Nil
- }
-
- def constants(file: XmlFppWriter.File): Result.Result[List[Ast.Annotated[AstNode[Ast.DefEnumConstant]]]] = {
- val items = file.elem \ "item"
- Result.map(items.toList, defEnumConstantAnnotatedNode(file, _))
- }
-
- def defEnum(file: XmlFppWriter.File): Result.Result[Ast.DefEnum] =
- for {
- name <- file.getAttribute(file.elem, "name")
- constants <- FppBuilder.constants(file)
- }
- yield {
- val repType = FppBuilder.repType(file)
- val default = FppBuilder.default(file)
- Ast.DefEnum(name, repType, constants, default)
- }
-
- def defEnumConstant(
- file: XmlFppWriter.File,
- constant: scala.xml.Node
- ): Result.Result[Ast.DefEnumConstant] =
- for {
- name <- file.getAttribute(constant, "name")
- value <- file.getAttribute(constant, "value")
- }
- yield {
- val e = Ast.ExprLiteralInt(value)
- val node = AstNode.create(e)
- Ast.DefEnumConstant(name, Some(node))
- }
-
- def defEnumConstantAnnotatedNode(
- file: XmlFppWriter.File,
- constant: scala.xml.Node
- ): Result.Result[Ast.Annotated[AstNode[Ast.DefEnumConstant]]] =
- for (data <- defEnumConstant(file, constant))
- yield {
- val a = XmlFppWriter.getAttributeComment(constant)
- val node = AstNode.create(data)
- (Nil, node, a)
- }
-
- def default(file: XmlFppWriter.File): Option[AstNode[Ast.Expr]] = {
- // Not supported in F Prime XML
- None
- }
-
- def repType(file: XmlFppWriter.File): Option[AstNode[Ast.TypeName]] = {
- // Not supported in F Prime XML
- None
- }
-
- /** Generates the TU member */
- def tuMember(file: XmlFppWriter.File): Result.Result[Ast.TUMember] =
- for (data <- defEnum(file))
- yield {
- val a = annotation(file)
- val aT = (a, data, Nil)
- XmlFppWriter.tuMember(
- aT,
- Ast.TUMember.DefEnum.apply,
- Ast.ModuleMember.DefEnum.apply,
- file
- )
- }
-
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/FormalParamsXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/FormalParamsXmlFppWriter.scala
deleted file mode 100644
index ed37c22c7..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlFppWriter/FormalParamsXmlFppWriter.scala
+++ /dev/null
@@ -1,72 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.ast._
-import fpp.compiler.codegen._
-import fpp.compiler.util._
-import scala.xml.Node
-
-/** Writes out F Prime XML arguments as FPP formal parameters */
-object FormalParamsXmlFppWriter extends LineUtils {
-
- /** Translates an XML type to an FPP type name */
- def translateType(file: XmlFppWriter.File): Node => Result.Result[Ast.TypeName] =
- file.translateType(node => file.getAttribute(node, "type")) _
-
- /** Extracts a formal parameter */
- def formalParamAnnotatedNode(file: XmlFppWriter.File, node: scala.xml.Node):
- Result.Result[Ast.Annotated[AstNode[Ast.FormalParam]]] =
- for {
- name <- file.getAttribute(node, "name")
- kind <- XmlFppWriter.getAttributeOpt(node, "pass_by") match {
- case Some("value") => Right(Ast.FormalParam.Value)
- case Some("reference") => Right(Ast.FormalParam.Ref)
- case Some(_) => Left(file.invalidAttribute("pass_by", node))
- case None => Right(Ast.FormalParam.Value)
- }
- typeName <- translateType(file)(node)
- comment <- file.getComment(node)
- }
- yield {
- val typeNameNode = AstNode.create(typeName)
- val data = Ast.FormalParam(kind, name, typeNameNode)
- val node = AstNode.create(data)
- (Nil, node, comment)
- }
-
- /** Extracts enum definitions from argument and return types */
- def defEnumAnnotatedList(file: XmlFppWriter.File, node: scala.xml.Node):
- Result.Result[List[Ast.Annotated[Ast.DefEnum]]] =
- for {
- nodeOpt <- file.getSingleChildOpt(node, "args")
- nodes <- nodeOpt match {
- case Some(node) => Right((node \ "arg").toList)
- case None => Right(Nil)
- }
- retTypeNodeOpt <- file.getSingleChildOpt(node, "return")
- nodes <- retTypeNodeOpt match {
- case Some(node) => Right(nodes :+ node)
- case None => Right(nodes)
- }
- enumOpts <- Result.map(
- nodes,
- XmlFppWriter.FppBuilder.InlineEnumBuilder.defEnumAnnotatedOpt(file)
- )
- }
- yield enumOpts.filter(_.isDefined).map(_.get)
-
- /** Extracts formal parameters */
- def formalParamList(
- file: XmlFppWriter.File,
- node: scala.xml.Node
- ): Result.Result[Ast.FormalParamList] =
- for {
- childOpt <- file.getSingleChildOpt(node, "args")
- result <- childOpt match {
- case Some(child) =>
- val args = child \ "arg"
- Result.map(args.toList, formalParamAnnotatedNode(file, _))
- case None => Right(Nil)
- }
- } yield result
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/PortXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/PortXmlFppWriter.scala
deleted file mode 100644
index c40d1178d..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlFppWriter/PortXmlFppWriter.scala
+++ /dev/null
@@ -1,62 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.ast._
-import fpp.compiler.codegen._
-import fpp.compiler.util._
-import scala.xml.Node
-
-/** Writes out an F Prime XML port as FPP source */
-object PortXmlFppWriter extends LineUtils {
-
- def writeFile(file: XmlFppWriter.File): XmlFppWriter.Result =
- for (tuMember <- FppBuilder.tuMemberList(file))
- yield FppWriter.tuMemberList(tuMember)
-
- /** Builds FPP for translating Serializable XML */
- private object FppBuilder {
-
- /** Translates an XML type to an FPP type name */
- def translateType(file: XmlFppWriter.File): Node => Result.Result[Ast.TypeName] =
- file.translateType(node => file.getAttribute(node, "type")) _
-
- /** Extracts the return type */
- def returnTypeOpt(file: XmlFppWriter.File):
- Result.Result[Option[AstNode[Ast.TypeName]]] =
- file.getSingleChildOpt(file.elem, "return") match {
- case Right(Some(child)) =>
- for (typeName <- translateType(file)(child))
- yield Some(AstNode.create(typeName))
- case Right(None) => Right(None)
- case Left(e) => Left(e)
- }
-
- /** Generates the list of TU members */
- def tuMemberList(file: XmlFppWriter.File): Result.Result[List[Ast.TUMember]] =
- for {
- enums <- FormalParamsXmlFppWriter.defEnumAnnotatedList(file, file.elem)
- port <- defPortAnnotated(file)
- }
- yield XmlFppWriter.tuMemberList(
- enums,
- Ast.TUMember.DefEnum.apply,
- Ast.ModuleMember.DefEnum.apply,
- port,
- Ast.TUMember.DefPort.apply,
- Ast.ModuleMember.DefPort.apply,
- file
- )
-
- /** Translates the port */
- def defPortAnnotated(file: XmlFppWriter.File):
- Result.Result[Ast.Annotated[Ast.DefPort]] =
- for {
- comment <- file.getComment(file.elem)
- name <- file.getAttribute(file.elem, "name")
- params <- FormalParamsXmlFppWriter.formalParamList(file, file.elem)
- returnType <- returnTypeOpt(file)
- }
- yield (comment, Ast.DefPort(name, params, returnType), Nil)
-
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/StructXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/StructXmlFppWriter.scala
deleted file mode 100644
index c1a276b56..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlFppWriter/StructXmlFppWriter.scala
+++ /dev/null
@@ -1,106 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.ast._
-import fpp.compiler.codegen._
-import fpp.compiler.util._
-import scala.xml.Node
-
-/** Writes out an F Prime XML Serializable struct as FPP source */
-object StructXmlFppWriter extends LineUtils {
-
- def writeFile(file: XmlFppWriter.File): XmlFppWriter.Result =
- for (tuMember <- FppBuilder.tuMemberList(file))
- yield FppWriter.tuMemberList(tuMember)
-
- /** Builds FPP for translating Serializable XML */
- private object FppBuilder {
-
- /** Translates an XML type to an FPP type name */
- def translateType(file: XmlFppWriter.File): Node => Result.Result[Ast.TypeName] =
- file.translateType(node => file.getAttribute(node, "type")) _
-
- /** Extracts a struct type member */
- def structTypeMemberAnnotatedNode(
- file: XmlFppWriter.File,
- node: scala.xml.Node
- ): Result.Result[Ast.Annotated[AstNode[Ast.StructTypeMember]]] = {
- for {
- structName <- file.getAttribute(file.elem, "name")
- memberName <- file.getAttribute(node, "name")
- xmlType <- file.getAttribute(node, "type")
- memberType <- translateType(file)(node)
- }
- yield {
- val xmlSizeOpt = XmlFppWriter.getAttributeOpt(node, "array_size")
- val sizeOpt = (memberType, xmlSizeOpt) match {
- case (_, Some(size)) => Some(size)
- case _ => None
- }
- val xmlFormatOpt = XmlFppWriter.getAttributeOpt(node, "format")
- val (fppFormatOpt, pre) =
- XmlFppWriter.FppBuilder.translateFormatOpt(xmlFormatOpt)
- val data = Ast.StructTypeMember(
- memberName,
- sizeOpt.map(size => AstNode.create(Ast.ExprLiteralInt(size))),
- AstNode.create(memberType),
- fppFormatOpt.map(AstNode.create(_))
- )
- val astNode = AstNode.create(data)
- val post = XmlFppWriter.getAttributeComment(node)
- (pre, astNode, post)
- }
- }
-
- /** Extracts enum definitions from struct members */
- def defEnumAnnotatedList(file: XmlFppWriter.File):
- Result.Result[List[Ast.Annotated[Ast.DefEnum]]] =
- for {
- child <- file.getSingleChild(file.elem, "members")
- members <- Right((child \ "member").toList)
- enumOpts <- Result.map(
- members,
- XmlFppWriter.FppBuilder.InlineEnumBuilder.defEnumAnnotatedOpt(file)
- )
- }
- yield enumOpts.filter(_.isDefined).map(_.get)
-
- /** Extracts struct type members */
- def structTypeMemberAnnotatedNodeList(file: XmlFppWriter.File):
- Result.Result[List[Ast.Annotated[AstNode[Ast.StructTypeMember]]]] =
- for {
- child <- file.getSingleChild(file.elem, "members")
- result <- {
- val members = child \ "member"
- Result.map(members.toList, structTypeMemberAnnotatedNode(file, _))
- }
- } yield result
-
- /** Generates the list of TU members */
- def tuMemberList(file: XmlFppWriter.File): Result.Result[List[Ast.TUMember]] =
- for {
- enums <- defEnumAnnotatedList(file)
- struct <- defStructAnnotated(file)
- }
- yield XmlFppWriter.tuMemberList(
- enums,
- Ast.TUMember.DefEnum.apply,
- Ast.ModuleMember.DefEnum.apply,
- struct,
- Ast.TUMember.DefStruct.apply,
- Ast.ModuleMember.DefStruct.apply,
- file,
- )
-
- /** Translates the struct type */
- def defStructAnnotated(file: XmlFppWriter.File):
- Result.Result[Ast.Annotated[Ast.DefStruct]] =
- for {
- comment <- file.getComment(file.elem)
- structName <- file.getAttribute(file.elem, "name")
- members <- structTypeMemberAnnotatedNodeList(file)
- }
- yield (comment, Ast.DefStruct(structName, members, None), Nil)
-
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/TlmPacketSetXmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/TlmPacketSetXmlWriter.scala
deleted file mode 100644
index 8704d34f7..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlFppWriter/TlmPacketSetXmlWriter.scala
+++ /dev/null
@@ -1,121 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.ast._
-import fpp.compiler.codegen._
-import fpp.compiler.util._
-import scala.xml.Node
-
-/** Writes out an F Prime XML telemetry packet set as FPP source */
-object TlmPacketSetXmlFppWriter extends LineUtils {
-
- def writeFile(file: XmlFppWriter.File): XmlFppWriter.Result =
- for (topologyMember <- FppBuilder.topologyMember(file))
- yield FppWriter.topologyMember(topologyMember)
-
- /** Builds FPP for translating telemetry packet XML */
- private object FppBuilder {
-
- /** Generates the topology member */
- def topologyMember(file: XmlFppWriter.File): Result.Result[Ast.TopologyMember] =
- for (tps <- specTlmPacketSetAnnotated(file))
- yield {
- val node = XmlFppWriter.transformNode (Ast.TopologyMember.SpecTlmPacketSet.apply) (tps)
- Ast.TopologyMember(node)
- }
-
- /** Extracts a telemetry packet set member */
- def tlmPacketSetMember(
- file: XmlFppWriter.File,
- xmlNode: scala.xml.Node
- ): Result.Result[Ast.TlmPacketSetMember] =
- for {
- name <- file.getAttribute(xmlNode, "name")
- group <- file.translateInteger(xmlNode, "level")
- members <- tlmPacketMemberList(file, xmlNode)
- }
- yield {
- val id = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "id")
- val data = Ast.SpecTlmPacket(
- name,
- id,
- group,
- members
- )
- val node = Ast.TlmPacketSetMember.SpecTlmPacket(AstNode.create(data))
- val aNode = (Nil, node, Nil)
- Ast.TlmPacketSetMember(aNode)
- }
-
- /** Extracts a telemetry channel identifier */
- def tlmChannelIdentifier(
- file: XmlFppWriter.File,
- name: String
- ): Result.Result[Ast.TlmChannelIdentifier] =
- name.split("\\.").toList.reverse match {
- case head :: tail =>
- val nodeList = tail.reverse.map(AstNode.create)
- val instance = Ast.QualIdent.fromNodeList(nodeList)
- Right(
- Ast.TlmChannelIdentifier(
- AstNode.create(instance),
- AstNode.create(head)
- )
- )
- case _ => Left(file.semanticError(s"channel name $name is not well-formed"))
- }
-
- /** Extracts a telemetry channel identifier node */
- def tlmChannelIdentifierNode(
- file: XmlFppWriter.File,
- xmlNode: scala.xml.Node
- ): Result.Result[AstNode[Ast.TlmChannelIdentifier]] =
- for {
- name <- file.getAttribute(xmlNode, "name")
- tci <- tlmChannelIdentifier(file, name)
- }
- yield AstNode.create(tci)
-
- /** Extracts a telemetry packet member */
- def tlmPacketMember(
- file: XmlFppWriter.File,
- xmlNode: scala.xml.Node
- ): Result.Result[Ast.TlmPacketMember] =
- tlmChannelIdentifierNode(file, xmlNode).map(Ast.TlmPacketMember.TlmChannelIdentifier.apply)
-
- /** Extracts telemetry packet members */
- def tlmPacketMemberList(file: XmlFppWriter.File, xmlNode: scala.xml.Node):
- Result.Result[List[Ast.TlmPacketMember]] = {
- val channels = xmlNode \ "channel"
- Result.map(channels.toList, tlmPacketMember(file, _))
- }
-
- /** Extracts telemetry packet set members */
- def tlmPacketSetMemberList(file: XmlFppWriter.File):
- Result.Result[List[Ast.TlmPacketSetMember]] = {
- val packets = file.elem \ "packet"
- Result.map(packets.toList, tlmPacketSetMember(file, _))
- }
-
- /** Extracts omitted channels */
- def omittedChannelList(file: XmlFppWriter.File):
- Result.Result[List[AstNode[Ast.TlmChannelIdentifier]]] =
- for {
- child <- file.getSingleChild(file.elem, "ignore")
- channels <- Right(child \ "channel")
- channelIds <- Result.map(channels.toList, tlmChannelIdentifierNode(file, _))
- }
- yield channelIds
-
- /** Translates the telemetry packet set */
- def specTlmPacketSetAnnotated(file: XmlFppWriter.File):
- Result.Result[Ast.Annotated[Ast.SpecTlmPacketSet]] =
- for {
- name <- file.getAttribute(file.elem, "name")
- members <- tlmPacketSetMemberList(file)
- omitted <- omittedChannelList(file)
- }
- yield (Nil, Ast.SpecTlmPacketSet(name, members, omitted), Nil)
-
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/TopologyXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/TopologyXmlFppWriter.scala
deleted file mode 100644
index 7423ec3fc..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlFppWriter/TopologyXmlFppWriter.scala
+++ /dev/null
@@ -1,186 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.ast._
-import fpp.compiler.codegen._
-import fpp.compiler.util._
-
-/** Writes out an F Prime XML topology as FPP source */
-object TopologyXmlFppWriter extends LineUtils {
-
- def writeFile(file: XmlFppWriter.File): XmlFppWriter.Result =
- for (tuMember <- FppBuilder.tuMemberList(file))
- yield FppWriter.tuMemberList(tuMember)
-
- /** Builds FPP for translating topology XML */
- private object FppBuilder {
-
- /** Generates the list of TU members */
- def tuMemberList(file: XmlFppWriter.File): Result.Result[List[Ast.TUMember]] =
- for {
- instances <- defComponentInstanceAnnotatedList(file)
- top <- defTopologyAnnotated(file)
- }
- yield XmlFppWriter.tuMemberList(
- instances,
- Ast.TUMember.DefComponentInstance.apply,
- Ast.ModuleMember.DefComponentInstance.apply,
- top,
- Ast.TUMember.DefTopology.apply,
- Ast.ModuleMember.DefTopology.apply,
- file,
- )
-
- /** Translates a component instance definition */
- def defComponentInstanceAnnotated(
- file: XmlFppWriter.File,
- node: scala.xml.Node
- ): Result.Result[Ast.Annotated[Ast.DefComponentInstance]] =
- for {
- name <- file.getAttribute(node, "name")
- componentName <- file.getAttribute(node, "type")
- baseId <- file.getAttribute(node, "base_id")
- }
- yield {
- val componentQid = Ast.QualIdent.fromNodeList(
- (XmlFppWriter.getAttributeNamespace(node) :+ componentName).
- map(AstNode.create(_))
- )
- (
- Nil,
- Ast.DefComponentInstance(
- name,
- AstNode.create(componentQid),
- AstNode.create(Ast.ExprLiteralInt(baseId)),
- None,
- None,
- None,
- None,
- None,
- None,
- Nil
- ),
- Nil
- )
- }
-
- /** Translates a component instance specifier */
- def specCompInstanceAnnotated(
- file: XmlFppWriter.File,
- node: scala.xml.Node
- ): Result.Result[Ast.Annotated[Ast.SpecCompInstance]] =
- for (name <- file.getAttribute(node, "name"))
- yield {
- val qid = XmlFppWriter.FppBuilder.translateQualIdent(name)
- (
- Nil,
- Ast.SpecCompInstance(Ast.Visibility.Public, qid),
- Nil
- )
- }
-
- /** Translates the component instance definitions */
- def defComponentInstanceAnnotatedList(file: XmlFppWriter.File):
- Result.Result[List[Ast.Annotated[Ast.DefComponentInstance]]] = {
- val instances = file.elem \ "instance"
- Result.map(instances.toList, defComponentInstanceAnnotated(file, _))
- }
-
- /** Translates the component instance specifiers */
- def specCompInstanceAnnotatedList(file: XmlFppWriter.File):
- Result.Result[List[Ast.Annotated[Ast.SpecCompInstance]]] = {
- val instances = file.elem \ "instance"
- Result.map(instances.toList, specCompInstanceAnnotated(file, _))
- }
-
- type Endpoint = (
- AstNode[Ast.PortInstanceIdentifier],
- Option[AstNode[Ast.Expr]]
- )
-
- /** Translates a connection endpoint */
- def endpoint(
- file: XmlFppWriter.File,
- node: scala.xml.Node
- ): Result.Result[Endpoint] =
- for {
- xmlInstance <- file.getAttribute(node, "component")
- port <- file.getAttribute(node, "port")
- portNumber <- file.getAttribute(node, "num")
- }
- yield {
- val pii = Ast.PortInstanceIdentifier(
- XmlFppWriter.FppBuilder.translateQualIdent(xmlInstance),
- AstNode.create(port)
- )
- val e = Ast.ExprLiteralInt(portNumber)
- (AstNode.create(pii), Some(AstNode.create(e)))
- }
-
- /** Translates a connection */
- def connection(
- file: XmlFppWriter.File,
- node: scala.xml.Node
- ): Result.Result[Ast.SpecConnectionGraph.Connection] =
- for {
- xmlSource <- file.getSingleChild(node, "source")
- from <- endpoint(file, xmlSource)
- xmlTarget <- file.getSingleChild(node, "target")
- to <- endpoint(file, xmlTarget)
- }
- yield {
- Ast.SpecConnectionGraph.Connection(
- false,
- from._1,
- from._2,
- to._1,
- to._2
- )
- }
-
- /** Translates the connections */
- def connectionList(file: XmlFppWriter.File):
- Result.Result[List[Ast.SpecConnectionGraph.Connection]] = {
- val connections = file.elem \ "connection"
- Result.map(connections.toList, connection(file, _))
- }
-
- /** Translates the connection graph */
- def specConnectionGraphAnnotated(file: XmlFppWriter.File):
- Result.Result[Ast.Annotated[Ast.SpecConnectionGraph]] =
- for (connections <- connectionList(file))
- yield (
- Nil,
- Ast.SpecConnectionGraph.Direct("XML", connections),
- Nil
- )
-
- /** Translates the topology */
- def defTopologyAnnotated(file: XmlFppWriter.File):
- Result.Result[Ast.Annotated[Ast.DefTopology]] =
- for {
- name <- file.getAttribute(file.elem, "name")
- instancesAnnotated <- specCompInstanceAnnotatedList(file)
- graphAnnotated <- specConnectionGraphAnnotated(file)
- }
- yield {
- def member[T]
- (memberNodeConstructor: AstNode[T] => Ast.TopologyMember.Node)
- (ta: Ast.Annotated[T]) = {
- val (a1, t, a2) = ta
- val node = AstNode.create(t)
- val memberNode = memberNodeConstructor(node)
- Ast.TopologyMember(a1, memberNode, a2)
- }
- val instanceMembers = instancesAnnotated.map(
- member(Ast.TopologyMember.SpecCompInstance.apply)
- )
- val graphMember = member(Ast.TopologyMember.SpecConnectionGraph.apply)(
- graphAnnotated
- )
- val members = instanceMembers :+ graphMember
- (Nil, Ast.DefTopology(name, members), Nil)
- }
-
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/XmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/XmlFppWriter.scala
deleted file mode 100644
index df5e68028..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlFppWriter/XmlFppWriter.scala
+++ /dev/null
@@ -1,435 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.ast._
-import fpp.compiler.codegen._
-import fpp.compiler.util._
-
-/** Writes F Prime XML as FPP source */
-object XmlFppWriter extends LineUtils {
-
- type Result = Result.Result[List[Line]]
-
- /** An F Prime XML file */
- case class File(
- /** The file name */
- name: String,
- /** The XML element */
- elem: scala.xml.Elem
- ) {
-
- /** Constructs an error containing the file name */
- def error(e: (String) => Error): Error = e(name)
-
- /** Constructs a semantic error with the given message */
- def semanticError(message: String): Error = error(XmlError.SemanticError(_, message))
-
- /** Gets an attribute from a node, returning an error if it is not there */
- def getAttribute(node: scala.xml.Node, name: String): Result.Result[String] =
- getAttributeOpt(node, name) match {
- case Some(s) => Right(s)
- case None => Left(semanticError(s"missing attribute $name for node ${node.toString}"))
- }
-
- /** Gets a comment from a node, returning an empty list if it is not there */
- def getComment(node: scala.xml.Node): Result.Result[List[String]] =
- for (childOpt <- getSingleChildOpt(node, "comment"))
- yield {
- def removeOuterBlanks(list: List[String]) = {
- def removeLeadingBlanks(list: List[String]): List[String] =
- list match {
- case "" :: tail => removeLeadingBlanks(tail)
- case _ => list
- }
- def removeTrailingBlanks(list: List[String]) =
- removeLeadingBlanks(list.reverse).reverse
- removeTrailingBlanks(removeLeadingBlanks(list))
- }
- childOpt match {
- case Some(node) => {
- val list = node.child.map(_.toString.split("\n").map(_.trim)).flatten.toList
- removeOuterBlanks(list)
- }
- case None => Nil
- }
- }
-
- /** Gets the integer value attribute from a node */
- def getIntegerValueAttribute(defaultValue: BigInt)(node: scala.xml.Node):
- Result.Result[BigInt]=
- getAttributeOpt(node, "value") match {
- case Some(value) =>
- try {
- Right(BigInt(value))
- } catch {
- case _: Exception => Left(
- semanticError(s"invalid value $value for node ${node.toString}")
- )
- }
- case None => Right(defaultValue)
- }
-
- /** Gets a single named child from a node, returning an error if it is not there */
- def getSingleChild(node: scala.xml.Node, name: String): Result.Result[scala.xml.Node] =
- getSingleChildOpt(node, name) match {
- case Right(Some(child)) => Right(child)
- case Right(None) => Left(semanticError(s"missing child $name for node ${node.toString}"))
- case Left(e) => Left(e)
- }
-
- /** Gets an optional single named child from a node */
- def getSingleChildOpt(node: scala.xml.Node, name: String): Result.Result[Option[scala.xml.Node]] =
- (node \ name).toList match {
- case head :: Nil => Right(Some(head))
- case Nil => Right(None)
- case _ => Left(semanticError(s"multiple child nodes $name for node ${node.toString}"))
- }
-
- /** Gets the unique child of a node */
- def getUniqueChild(node: scala.xml.Node): Result.Result[scala.xml.Node] =
- node.child.size match {
- case 0 => Left(semanticError(s"missing child for node ${node.toString}"))
- case 1 => Right(node.child.head)
- case _ => Left(semanticError(s"too many children of node ${node.toString}"))
- }
-
- /** Reports an invalid attribute */
- def invalidAttribute(name: String, node: scala.xml.Node): Error =
- semanticError(s"invalid attribute $name in node ${node.toString}")
-
- /** Translates a integer attribute */
- def translateInteger(xmlNode: scala.xml.Node, name: String): Result.Result[AstNode[Ast.ExprLiteralInt]] =
- getAttribute(xmlNode, name).map(
- text => AstNode.create(Ast.ExprLiteralInt(text))
- )
-
- /** Translates an XML type to an FPP type name */
- def translateType
- (getType: scala.xml.Node => Result.Result[String])
- (node: scala.xml.Node): Result.Result[Ast.TypeName] =
- for {
- xmlType <- getType(node)
- result <- {
- val sizeOpt = getAttributeOpt(node, "size")
- xmlType match {
- case "I16" => Right(Ast.TypeNameInt(Ast.I16()))
- case "I32" => Right(Ast.TypeNameInt(Ast.I32()))
- case "I64" => Right(Ast.TypeNameInt(Ast.I64()))
- case "I8" => Right(Ast.TypeNameInt(Ast.I8()))
- case "F32" => Right(Ast.TypeNameFloat(Ast.F32()))
- case "F64" => Right(Ast.TypeNameFloat(Ast.F64()))
- case "U16" => Right(Ast.TypeNameInt(Ast.U16()))
- case "U32" => Right(Ast.TypeNameInt(Ast.U32()))
- case "U64" => Right(Ast.TypeNameInt(Ast.U64()))
- case "U8" => Right(Ast.TypeNameInt(Ast.U8()))
- case "bool" => Right(Ast.TypeNameBool)
- case "ENUM" => for {
- enumeration <- getSingleChild(node, "enum")
- name <- getAttribute(enumeration, "name")
- } yield FppBuilder.translateQualIdentType(name)
- case "string" => Right(Ast.TypeNameString(
- sizeOpt.map((size: String) => AstNode.create(Ast.ExprLiteralInt(size)))
- ))
- case _ => Right(FppBuilder.translateQualIdentType(xmlType))
- }
- }
- } yield result
-
- /** Writes a file as lines */
- def write: Result = {
- val eltType = elem.label
- for {
- body <- eltType match {
- case "array" => ArrayXmlFppWriter.writeFile(this)
- case "assembly" => TopologyXmlFppWriter.writeFile(this)
- case "commands" => ComponentXmlFppWriter.writeCommandsFile(this)
- case "component" => ComponentXmlFppWriter.writeComponentFile(this)
- case "enum" => EnumXmlFppWriter.writeFile(this)
- case "events" => ComponentXmlFppWriter.writeEventsFile(this)
- case "interface" => PortXmlFppWriter.writeFile(this)
- case "internal_interfaces" => ComponentXmlFppWriter.writeInternalPortsFile(this)
- case "packets" => TlmPacketSetXmlFppWriter.writeFile(this)
- case "parameters" => ComponentXmlFppWriter.writeParamsFile(this)
- case "ports" => ComponentXmlFppWriter.writePortsFile(this)
- case "serializable" => StructXmlFppWriter.writeFile(this)
- case "telemetry" => ComponentXmlFppWriter.writeTlmChannelsFile(this)
- case _ => Left(semanticError(s"invalid element type $eltType"))
- }
- }
- yield body
- }
-
- }
-
- /** Constructs a translator note */
- def constructNote(s: String): String = "FPP from XML: " ++ s
-
- /** Gets an attribute comment */
- def getAttributeComment(node: scala.xml.Node): List[String] =
- getAttributeOpt(node, "comment") match {
- case Some(s) => s.split("\n").map(_.trim).toList
- case None => Nil
- }
-
- /** Gets an attribute namespace */
- def getAttributeNamespace(node: scala.xml.Node): List[String] =
- getAttributeOpt(node, "namespace") match {
- case Some(s) => s.split("::").toList
- case None => Nil
- }
-
- /** Gets an optional attribute */
- def getAttributeOpt(node: scala.xml.Node, name: String): Option[String] =
- node.attribute(name).map(_.toList.head.toString)
-
- /** Writes a file list */
- def writeFileList(fileList: List[File]): Result.Result[List[Line]] = {
- for (files <- Result.map(fileList, _.write))
- yield Line.blankSeparated (identity[List[Line]]) (files)
- }
-
- /** Builds a TU member from a single annotated element */
- def tuMember[T](
- aT: Ast.Annotated[T],
- tumConstructor: AstNode[T] => Ast.TUMember.Node,
- moduleConstructor: AstNode[T] => Ast.ModuleMember.Node,
- file: XmlFppWriter.File
- ): Ast.TUMember = tuMemberList(
- Nil: List[Ast.Annotated[Ast.DefEnum]],
- Ast.TUMember.DefEnum.apply,
- Ast.ModuleMember.DefEnum.apply,
- aT,
- tumConstructor,
- moduleConstructor,
- file
- ).head
-
- /** Transforms an annotated AST node */
- def transformNode[A,B](transform: AstNode[A] => B)(a: Ast.Annotated[A]): (List[String], B, List[String]) =
- (a._1, transform(AstNode.create(a._2)), a._3)
-
- /** Builds a list of TU members from a list of annotated A elements
- * followed by a single annotated B element */
- def tuMemberList[A,B](
- aNodesA: List[Ast.Annotated[A]],
- tumConstructorA: AstNode[A] => Ast.TUMember.Node,
- moduleConstructorA: AstNode[A] => Ast.ModuleMember.Node,
- aNodeB: Ast.Annotated[B],
- tumConstructorB: AstNode[B] => Ast.TUMember.Node,
- moduleConstructorB: AstNode[B] => Ast.ModuleMember.Node,
- file: XmlFppWriter.File,
- ): List[Ast.TUMember] = {
- val moduleNames = XmlFppWriter.getAttributeNamespace(file.elem)
- val memberNodes = moduleNames match {
- case Nil => {
- // Generate a list of TU members
- val aNodesA1 = aNodesA.map(transformNode(tumConstructorA))
- val aNodeB1 = transformNode(tumConstructorB)(aNodeB)
- aNodesA1 :+ aNodeB1
- }
- case head :: tail => {
- // Generate a TU member consisting of one or more modules enclosing module members
- val aNodesA1 = aNodesA.map(transformNode(moduleConstructorA))
- val aNodeB1 = transformNode(moduleConstructorB)(aNodeB)
- val members = aNodesA1 :+ aNodeB1
- val members1 = XmlFppWriter.FppBuilder.encloseWithModuleMemberModules(tail.reverse)(members)
- List(XmlFppWriter.FppBuilder.encloseWithTuMemberModule(head)(members1))
- }
- }
- memberNodes.map(Ast.TUMember(_))
- }
-
- /** Utilities for constructing FPP ASTs */
- object FppBuilder {
-
- /** Encloses a list of module members with a module inside a trans unit */
- def encloseWithTuMemberModule
- (name: String)
- (members: List[Ast.Annotated[Ast.ModuleMember.Node]]):
- Ast.Annotated[Ast.TUMember.Node] =
- encloseWithModule(Ast.TUMember.DefModule.apply)(name)(members)
-
- /** Encloses a list of module members with zero more modules inside a module */
- def encloseWithModuleMemberModules
- (names: List[String])
- (members: List[Ast.Annotated[Ast.ModuleMember.Node]]):
- List[Ast.Annotated[Ast.ModuleMember.Node]] =
- {
- def encloseWithModuleMemberModule
- (name: String)
- (members: List[Ast.Annotated[Ast.ModuleMember.Node]]):
- List[Ast.Annotated[Ast.ModuleMember.Node]] =
- List(encloseWithModule(Ast.ModuleMember.DefModule.apply)(name)(members))
- names match {
- case Nil => members
- case head :: tail => encloseWithModuleMemberModules(tail)(
- encloseWithModuleMemberModule(head)(members)
- )
- }
- }
-
- /** Translates a qualified identifier type */
- def translateQualIdentType(xmlType: String): Ast.TypeNameQualIdent =
- Ast.TypeNameQualIdent(translateQualIdent(xmlType))
-
- /** Translates a qualified identifier */
- def translateQualIdent(xmlQid: String): AstNode[Ast.QualIdent] =
- AstNode.create(
- Ast.QualIdent.fromNodeList(
- xmlQid.split("::").toList.map(AstNode.create(_))
- )
- )
-
- /** Translates an XML format */
- def translateFormat(xmlFormat: String): Option[String] = {
- val repls = List(
- ("\\{" -> "{{"),
- ("\\}" -> "}}"),
- ("(%ld|%d|%lu|%u|%s|%g|%llu|%lld)" -> "{}"),
- ("%c" -> "{c}"),
- ("(%o|%lo|%llo)" ->"{o}"),
- ("(%x|%lx|%llx)" -> "{x}"),
- ("%e"-> "{e}"),
- ("%f"-> "{f}"),
- ("%(\\.[0-9]+)e"-> "{$1e}"),
- ("%(\\.[0-9]+)f"-> "{$1f}"),
- ("%(\\.[0-9]+)g" -> "{$1g}")
- )
- val s = repls.foldLeft(xmlFormat)({ case (s, (a, b)) => s.replaceAll(a, b) })
- if (!s.replaceAll("%%", "").contains("%"))
- Some(s.replaceAll("%%", "%")) else None
- }
-
- /** Translates an optional XML format.
- * Returns the translated format and a note. */
- def translateFormatOpt(xmlFormatOpt: Option[String]): (Option[String], List[String]) = {
- val fppFormatOpt = xmlFormatOpt.flatMap(FppBuilder.translateFormat(_))
- val note = (xmlFormatOpt, fppFormatOpt) match {
- case (Some(xmlFormat), None) =>
- val s = "could not translate format string \"" ++ xmlFormat ++ "\""
- List(constructNote(s))
- case _ => Nil
- }
- // Represent default format "{}" more succinctly as no format
- val format = fppFormatOpt match {
- case Some("{}") => None
- case _ => fppFormatOpt
- }
- (format, note)
- }
-
- /** Translates an optional integer attribute */
- def translateIntegerOpt(xmlNode: scala.xml.Node, name: String): Option[AstNode[Ast.ExprLiteralInt]] =
- getAttributeOpt(xmlNode, name).map(
- text => AstNode.create(Ast.ExprLiteralInt(text))
- )
-
- /** Translates a value from FPP to XML */
- def translateValue(xmlValue: String, tn: Ast.TypeName): Option[AstNode[Ast.Expr]] = {
- val exprOpt = (xmlValue, tn) match {
- case (_, Ast.TypeNameInt(_)) => Some(Ast.ExprLiteralInt(xmlValue))
- case (_, Ast.TypeNameFloat(_)) => Some(Ast.ExprLiteralFloat(xmlValue))
- case ("true", Ast.TypeNameBool) => Some(Ast.ExprLiteralBool(Ast.LiteralBool.True))
- case ("false", Ast.TypeNameBool) => Some(Ast.ExprLiteralBool(Ast.LiteralBool.False))
- case (_, Ast.TypeNameString(_)) => Some(Ast.ExprLiteralString(xmlValue.replaceAll("^\"|\"$", "")))
- case _ =>
- if ("[^A-Za-z0-9_:]".r.findAllIn(xmlValue).length > 0)
- // Not a qualified identifier -- don't translate
- None
- else {
- // C++ qualified identifier. Translate to an FPP qualified identifier.
- val head :: tail = xmlValue.split("::").toList
- val e = tail.foldLeft (Ast.ExprIdent(head): Ast.Expr) ((e1, s) =>
- Ast.ExprDot(AstNode.create(e1), AstNode.create(s))
- )
- Some(e)
- }
- }
- exprOpt.map(AstNode.create(_))
- }
-
- /** Encloses several member nodes with a module of variant type */
- private def encloseWithModule[MemberType]
- (memberTypeConstructor: AstNode[Ast.DefModule] => MemberType)
- (name:String)
- (memberNodes: List[Ast.Annotated[Ast.ModuleMember.Node]]):
- Ast.Annotated[MemberType] =
- {
- val members = memberNodes.map(Ast.ModuleMember(_))
- val defModule = Ast.DefModule(name, members)
- val node = AstNode.create(defModule)
- (Nil, memberTypeConstructor(node), Nil)
- }
-
- /** Extracts inline enums from XML nodes */
- object InlineEnumBuilder {
-
- /** Translates an enum */
- def defEnumAnnotated(file: XmlFppWriter.File)(node: scala.xml.Node):
- Result.Result[Ast.Annotated[Ast.DefEnum]] =
- for {
- name <- file.getAttribute(node, "name")
- constants <- defEnumConstantNodeAnnotatedList(file)(node)
- }
- yield (Nil, Ast.DefEnum(name, None, constants, None), Nil)
-
- /** Translates an enum if present in the node */
- def defEnumAnnotatedOpt(file: XmlFppWriter.File)(node: scala.xml.Node):
- Result.Result[Option[Ast.Annotated[Ast.DefEnum]]] =
- for {
- enumNodeOpt <- file.getSingleChildOpt(node, "enum")
- result <- enumNodeOpt match {
- case Some(enumNode) => defEnumAnnotated(file)(enumNode).map(Some(_))
- case None => Right(None)
- }
- } yield result
-
- /** Translates an enum constant node */
- def defEnumConstantNodeAnnotated
- (file: XmlFppWriter.File)
- (defaultValue: BigInt)
- (node: scala.xml.Node):
- Result.Result[(Ast.Annotated[AstNode[Ast.DefEnumConstant]], BigInt)] =
- {
- for {
- name <- file.getAttribute(node, "name")
- value <- file.getIntegerValueAttribute(defaultValue)(node)
- }
- yield {
- val data = Ast.DefEnumConstant(
- name,
- Some(AstNode.create(Ast.ExprLiteralInt(value.toString)))
- )
- val astNode = AstNode.create(data)
- val comment = XmlFppWriter.getAttributeComment(node)
- ((Nil, astNode, comment), value + 1)
- }
- }
-
- /** Translates a list of enum constant nodes */
- def defEnumConstantNodeAnnotatedList
- (file: XmlFppWriter.File)
- (enumNode: scala.xml.Node):
- Result.Result[List[Ast.Annotated[AstNode[Ast.DefEnumConstant]]]] =
- {
- val items = (enumNode \ "item").toList
- def fold(
- nodes: List[scala.xml.Node],
- defaultValue: BigInt,
- out: List[Ast.Annotated[AstNode[Ast.DefEnumConstant]]]
- ): Result.Result[List[Ast.Annotated[AstNode[Ast.DefEnumConstant]]]] = {
- nodes match {
- case Nil => Right(out.reverse)
- case head :: tail => defEnumConstantNodeAnnotated(file)(defaultValue)(head) match {
- case Left(e) => Left(e)
- case Right((aNode, nextDefaultValue)) => fold(tail, nextDefaultValue, aNode :: out)
- }
- }
- }
- fold(items, BigInt(0), Nil)
- }
-
- }
-
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/AnnotationXmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/AnnotationXmlWriter.scala
deleted file mode 100644
index cde57b6b7..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/AnnotationXmlWriter.scala
+++ /dev/null
@@ -1,26 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.ast._
-import fpp.compiler.util._
-
-/** Write an FPP annotation as XML */
-object AnnotationXmlWriter extends LineUtils {
-
- /** Write a multiline comment */
- def multilineComment[T](a: Ast.Annotated[T]): List[Line] = {
- (a._1 ++ a._3).map(line compose XmlTags.escaped) match {
- case Nil => Nil
- case ls => {
- val tags = XmlTags.tags("comment")
- XmlTags.taggedLines(tags)(ls)
- }
- }
- }
-
- /** Write a single-line comment */
- def singleLineComment[T](a: Ast.Annotated[T]): Option[(String, String)] = {
- val s = (a._1 ++ a._3).map(XmlTags.escaped).mkString(" ")
- if (s.length > 0) Some(("comment", s)) else None
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/ArrayXmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/ArrayXmlWriter.scala
deleted file mode 100644
index 7040b7504..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/ArrayXmlWriter.scala
+++ /dev/null
@@ -1,86 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.analysis._
-import fpp.compiler.ast._
-import fpp.compiler.util._
-
-/** Write out F Prime XML for array definitions */
-object ArrayXmlWriter extends AstVisitor with LineUtils {
-
- type In = XmlWriterState
-
- type Out = List[Line]
-
- override def default(s: XmlWriterState) = Nil
-
- override def defArrayAnnotatedNode(s: XmlWriterState, aNode: Ast.Annotated[AstNode[Ast.DefArray]]) = {
- val node = aNode._2
- val data = node.data
- val tags = {
- val pairs = s.getNamespaceAndName(Symbol.Array(aNode))
- XmlTags.tags("array", pairs)
- }
- val body = {
- val Right(a) = UsedSymbols.defArrayAnnotatedNode(s.a, aNode)
- val comment = AnnotationXmlWriter.multilineComment(aNode)
- val imports = s.writeImportDirectives(a.usedSymbolSet)
- val arrayType @ Type.Array(_, _, _, _) = s.a.typeMap(node.id)
-
- val t = {
- val typeName = TypeXmlWriter.getName(s, arrayType.anonArray.eltType)
- val stringSize = TypeXmlWriter.getSize(s, arrayType.anonArray.eltType)
- val openTag = stringSize match {
- case Some(openTag)=> XmlTags.openTag("type", List( ("size", openTag) ))
- case None => XmlTags.openTag("type", Nil)
- }
- val closeTag = XmlTags.closeTag("type")
- val tags = openTag ++ typeName ++ closeTag
- List(line(tags))
- }
- val size = {
- val tags = XmlTags.tags("size")
- val mappedSize = arrayType.getArraySize match {
- case Some(mappedSize) => mappedSize.toString
- case None => "0"
- }
- List(line(XmlTags.taggedString(tags)(mappedSize)))
- }
- val format = {
- val tags = XmlTags.tags("format")
- val format = arrayType.format match {
- case Some(format) => format
- case None => Format("", List((Format.Field.Default,"")))
- }
- val s = FormatXmlWriter.formatToString(format, List(data.eltType))
- List(line(XmlTags.taggedString(tags)(s)))
- }
- val default = {
- val defaultTags = XmlTags.tags("default")
- val defaultValue = arrayType.getDefaultValue.get
- val ls = writeDefaultValue(s, defaultValue)
- XmlTags.taggedLines(defaultTags)(ls.map(indentIn))
- }
- List(
- imports,
- comment,
- t,
- size,
- format,
- default
- ).flatten
- }
- XmlTags.taggedLines(tags)(body.map(indentIn))
- }
-
- /** Writes the default value corresponding to an array value */
- def writeDefaultValue(
- s: XmlWriterState,
- arrayValue: Value.Array
- ): Out = {
- val tags = XmlTags.tags("value")
- val elements = arrayValue.anonArray.elements
- val values = elements.map(ValueXmlWriter.write(s, _))
- values.map(XmlTags.taggedString(tags)(_)).map(line)
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/ComponentXmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/ComponentXmlWriter.scala
deleted file mode 100644
index c4f5615ce..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/ComponentXmlWriter.scala
+++ /dev/null
@@ -1,329 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.analysis._
-import fpp.compiler.ast._
-import fpp.compiler.util._
-
-/** Write out F Prime XML for component definitions */
-object ComponentXmlWriter extends AstVisitor with LineUtils {
-
- type In = XmlWriterState
-
- type Out = List[Line]
-
- override def defComponentAnnotatedNode(
- s: XmlWriterState,
- aNode: Ast.Annotated[AstNode[Ast.DefComponent]]
- ) = {
- val symbol = Symbol.Component(aNode)
- val c = s.a.componentMap(symbol)
- val pairs = {
- val data = aNode._2.data
- s.getNamespaceAndName(symbol) :+ ("kind", data.kind.toString)
- }
- val body = {
- val comment = AnnotationXmlWriter.multilineComment(aNode)
- List(
- comment,
- writeImports(s, c),
- writePorts(s, c),
- writeInternalInterfaces(s, c),
- writeCommands(s, c),
- writeEvents(s, c),
- writeParams(s, c),
- writeTlmChannels(s, c)
- ).flatMap(XmlWriterState.addBlankPrefix) :+ Line.blank
- }
- XmlTags.taggedLines ("component", pairs) (body.map(indentIn))
- }
-
- override def default(s: XmlWriterState) = Nil
-
- private def writeCommands(s: XmlWriterState, c: Component) = {
- import Command._
- def writeNonParamCommand(opcode: Opcode, nonParam: NonParam) = {
- import NonParam._
- val data = nonParam.aNode._2.data
- def writeKind(kind: NonParam.Kind) = {
- kind match {
- case _: Async => "async"
- case Guarded => "guarded"
- case Sync => "sync"
- }
- }
- val pairs = {
- val pairs1 = List(
- ("kind", writeKind(nonParam.kind)),
- ("opcode", XmlWriterState.writeId(opcode)),
- ("mnemonic", data.name),
- )
- val priority = nonParam.kind match {
- case Async(Some(priority), _) =>
- List(("priority", priority.toString))
- case _ => Nil
- }
- val queueFull = nonParam.kind match {
- case Async(_, queueFull) => List(("full", queueFull.toString))
- case _ => Nil
- }
- pairs1 ++ priority ++ queueFull
- }
- val body = {
- val comment = AnnotationXmlWriter.multilineComment(nonParam.aNode)
- val args = FormalParamsXmlWriter.formalParamList(s, data.params)
- comment ++ args
- }
- XmlTags.taggedLines ("command", pairs) (body.map(indentIn))
- }
- def writeCommand(opcode: Opcode, command: Command) = command match {
- case nonParam: NonParam => writeNonParamCommand(opcode, nonParam)
- // Parameter commands are implicit in the XML component representation
- case param: Param => Nil
- }
- val commands = c.commandMap.keys.toList.sortWith(_ < _).
- flatMap(key => writeCommand(key, c.commandMap(key)))
- XmlTags.taggedLinesOpt ("commands") (commands.map(indentIn))
- }
-
- private def writeEvents(s: XmlWriterState, c: Component) = {
- import Event._
- def writeEvent(id: Id, event: Event) = {
- val data = event.aNode._2.data
- def writeSeverity(severity: Ast.SpecEvent.Severity) = {
- import Ast.SpecEvent._
- severity match {
- case ActivityHigh => "ACTIVITY_HI"
- case ActivityLow => "ACTIVITY_LO"
- case Command => "COMMAND"
- case Diagnostic => "DIAGNOSTIC"
- case Fatal => "FATAL"
- case WarningHigh => "WARNING_HI"
- case WarningLow => "WARNING_LO"
- }
- }
- val pairs = {
- val typeNames = data.params.map(_._2.data.typeName)
- val format = FormatXmlWriter.formatToString(
- event.format,
- typeNames
- )
- val pairs1 = List(
- ("id", XmlWriterState.writeId(id)),
- ("name", data.name),
- ("severity", writeSeverity(data.severity)),
- ("format_string", format)
- )
- val throttle = event.throttle match {
- case Some(throttle) => List(("throttle", throttle.toString))
- case _ => Nil
- }
- pairs1 ++ throttle
- }
- val body = {
- val comment = AnnotationXmlWriter.multilineComment(event.aNode)
- val args = FormalParamsXmlWriter.formalParamList(s, data.params)
- comment ++ args
- }
- XmlTags.taggedLines ("event", pairs) (body.map(indentIn))
- }
- val events = c.eventMap.keys.toList.sortWith(_ < _).
- flatMap(key => writeEvent(key, c.eventMap(key)))
- XmlTags.taggedLinesOpt ("events") (events.map(indentIn))
- }
-
- private def writeImports(s: XmlWriterState, c: Component) = {
- val Right(a) = UsedSymbols.defComponentAnnotatedNode(s.a, c.aNode)
- s.writeImportDirectives(a.usedSymbolSet)
- }
-
- private def writeInternalInterfaces(s: XmlWriterState, c: Component) = {
- def writeInternalPort(name: String, internal: PortInstance.Internal) = {
- import PortInstance.Internal._
- val data = internal.aNode._2.data
- val pairs = {
- val namePair = ("name", name)
- val priority = internal.priority match {
- case Some(priority) => List(("priority", priority.toString))
- case _ => Nil
- }
- val queueFull = ("full", internal.queueFull.toString)
- (namePair :: priority) :+ queueFull
- }
- val body = {
- val comment = AnnotationXmlWriter.multilineComment(internal.aNode)
- val args = FormalParamsXmlWriter.formalParamList(s, data.params)
- comment ++ args
- }
- XmlTags.taggedLines ("internal_interface", pairs) (body.map(indentIn))
- }
- def writeInternalInterface(name: String, instance: PortInstance) = instance match {
- case internal: PortInstance.Internal => writeInternalPort(name, internal)
- case _ => Nil
- }
- val ports = c.portMap.keys.toList.sortWith(_ < _).
- flatMap(key => writeInternalInterface(key, c.portMap(key)))
- XmlTags.taggedLinesOpt ("internal_interfaces") (ports.map(indentIn))
- }
-
- private def writeParams(s: XmlWriterState, c: Component) = {
- import Param._
- def writeParam(id: Id, param: Param) = {
- val data = param.aNode._2.data
- val pairs = List(
- List (
- ("id", XmlWriterState.writeId(id)),
- ("set_opcode", XmlWriterState.writeId(param.setOpcode)),
- ("save_opcode", XmlWriterState.writeId(param.saveOpcode)),
- ("name", data.name),
- ),
- TypeXmlWriter.getPairs(s, param.paramType, "data_type"),
- param.default match {
- case Some(value) => List(("default", ValueXmlWriter.write(s, value)))
- case _ => Nil
- }
- ).flatten
- val comment = AnnotationXmlWriter.multilineComment(param.aNode)
- XmlTags.taggedLines ("parameter", pairs) (comment.map(indentIn))
- }
- val params = c.paramMap.keys.toList.sortWith(_ < _).
- flatMap(key => writeParam(key, c.paramMap(key)))
- XmlTags.taggedLinesOpt ("parameters") (params.map(indentIn))
- }
-
- private def writePorts(s: XmlWriterState, c: Component) = {
- def writeGeneralPort(name: String, general: PortInstance.General) = {
- import PortInstance.General._
- def writeDataType(ty: PortInstance.Type) = ty match {
- case PortInstance.Type.DefPort(symbol) => s.writeSymbol(symbol)
- case PortInstance.Type.Serial => "Serial"
- }
- def writeKind(kind: Kind) = kind match {
- case _ : Kind.AsyncInput => "async_input"
- case Kind.GuardedInput => "guarded_input"
- case Kind.SyncInput => "sync_input"
- case Kind.Output => "output"
- }
- val pairs = {
- val pairs1 = List(
- ("name", name),
- ("data_type", writeDataType(general.ty)),
- ("kind", writeKind(general.kind)),
- ("max_number", general.size.toString)
- )
- val priority = general.kind match {
- case Kind.AsyncInput(Some(priority), _) =>
- List(("priority", priority.toString))
- case _ => Nil
- }
- val queueFull = general.kind match {
- // Hook queue full option becomes drop in XML
- case Kind.AsyncInput(_, Ast.QueueFull.Hook) =>
- List(("full", Ast.QueueFull.Drop.toString))
- case Kind.AsyncInput(_, queueFull) =>
- List(("full", queueFull.toString))
- case _ => Nil
- }
- pairs1 ++ priority ++ queueFull
- }
- val comment = AnnotationXmlWriter.multilineComment(general.aNode)
- XmlTags.taggedLines ("port", pairs) (comment.map(indentIn))
- }
- def writeSpecialPort(name: String, special: PortInstance.Special) = {
- val kind = {
- import Ast.SpecPortInstance._
- special.specifier.kind match {
- case CommandRecv => "input"
- case _ => "output"
- }
- }
- val role = {
- import Ast.SpecPortInstance._
- special.specifier.kind match {
- case CommandRecv => "Cmd"
- case CommandReg => "CmdRegistration"
- case CommandResp => "CmdResponse"
- case Event => "LogEvent"
- case ParamGet => "ParamGet"
- case ParamSet => "ParamSet"
- case Telemetry => "Telemetry"
- case TextEvent => "LogTextEvent"
- case TimeGet => "TimeGet"
- // This should never happen, because of XML lowering
- case _ => throw new InternalError(s"invalid specifier kind ${special.specifier.kind}")
- }
- }
- val pairs = List(
- ("name", name),
- ("data_type", s.writeSymbol(special.symbol)),
- ("kind", kind),
- ("role", role),
- ("max_number", "1")
- )
- val comment = AnnotationXmlWriter.multilineComment(special.aNode)
- XmlTags.taggedLines ("port", pairs) (comment.map(indentIn))
- }
- def writePort(name: String, instance: PortInstance) = instance match {
- case general: PortInstance.General => writeGeneralPort(name, general)
- case special: PortInstance.Special =>
- // Lower data product ports to generic XML
- DpPortXmlLowering(s, name, special).lower match {
- case Some(general) => writeGeneralPort(name, general)
- case None => writeSpecialPort(name, special)
- }
- case _ => Nil
- }
- val ports = c.portMap.keys.toList.sortWith(_ < _).
- flatMap(key => writePort(key, c.portMap(key)))
- XmlTags.taggedLinesOpt ("ports") (ports.map(indentIn))
- }
-
- private def writeTlmChannels(s: XmlWriterState, c: Component) = {
- import TlmChannel._
- def writeTlmChannel(id: Id, tlmChannel: TlmChannel) = {
- val data = tlmChannel.aNode._2.data
- def writeUpdate(update: Ast.SpecTlmChannel.Update) = {
- import Ast.SpecTlmChannel._
- update match {
- case Always => "always"
- case OnChange => "on_change"
- }
- }
- def writeLimits(name: String, limits: Limits) = {
- import Ast.SpecTlmChannel._
- def writeLimit(kind: LimitKind, value: Value) = {
- val left = s"${name}_${kind.toString}"
- val right = ValueXmlWriter.write(s, value)
- (left, right)
- }
- limits.keys.toList.
- map(key => writeLimit(key, limits(key)._2)).
- sortWith((a, b) => a._1 < b._1)
- }
- val pairs = List(
- List(
- ("id", XmlWriterState.writeId(id)),
- ("name", data.name),
- ),
- TypeXmlWriter.getPairs(s, tlmChannel.channelType, "data_type"),
- List(
- ("update", writeUpdate(tlmChannel.update))
- ),
- tlmChannel.format match {
- case Some(format) => List((
- "format_string",
- FormatXmlWriter.formatToString(format, List(data.typeName))
- ))
- case None => Nil
- },
- writeLimits("low", tlmChannel.lowLimits),
- writeLimits("high", tlmChannel.highLimits),
- ).flatten
- val comment = AnnotationXmlWriter.multilineComment(tlmChannel.aNode)
- XmlTags.taggedLines ("channel", pairs) (comment.map(indentIn))
- }
- val tlmChannels = c.tlmChannelMap.keys.toList.sortWith(_ < _).
- flatMap(key => writeTlmChannel(key, c.tlmChannelMap(key)))
- XmlTags.taggedLinesOpt ("telemetry") (tlmChannels.map(indentIn))
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/ComputeXmlFiles.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/ComputeXmlFiles.scala
deleted file mode 100644
index 38f3763e7..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/ComputeXmlFiles.scala
+++ /dev/null
@@ -1,97 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.analysis._
-import fpp.compiler.ast._
-import fpp.compiler.util._
-
-/** ======================================================================
- * Compute the names of the XML files to generate
- * ======================================================================
- * Check for duplicates that would cause a name collision.
- * For example, module M { struct S { ... } } and struct S { ... } will both
- * generate SSerializableAi.xml, so we can't generate XML files for both
- * in the same place.
- * ======================================================================*/
-object ComputeXmlFiles extends AstStateVisitor {
-
- type State = XmlWriterState
-
- override def defArrayAnnotatedNode(s: State, node: Ast.Annotated[AstNode[Ast.DefArray]]) = {
- val (_, node1, _) = node
- val data = node1.data
- val loc = Locations.get(node1.id)
- val name = s.getName(Symbol.Array(node))
- val fileName = XmlWriterState.getArrayFileName(name)
- addMapping(s, fileName, loc)
- }
-
- override def defComponentAnnotatedNode(s: State, node: Ast.Annotated[AstNode[Ast.DefComponent]]) = {
- val (_, node1, _) = node
- val data = node1.data
- val loc = Locations.get(node1.id)
- val name = s.getName(Symbol.Component(node))
- val fileName = XmlWriterState.getComponentFileName(name)
- for {
- s <- visitList(s, data.members, matchComponentMember)
- s <- addMapping(s, fileName, loc)
- }
- yield s
- }
-
- override def defEnumAnnotatedNode(s: State, node: Ast.Annotated[AstNode[Ast.DefEnum]]) = {
- val (_, node1, _) = node
- val data = node1.data
- val loc = Locations.get(node1.id)
- val name = s.getName(Symbol.Enum(node))
- val fileName = XmlWriterState.getEnumFileName(name)
- addMapping(s, fileName, loc)
- }
-
- override def defModuleAnnotatedNode(
- s: State,
- node: Ast.Annotated[AstNode[Ast.DefModule]]
- ) = {
- val (_, node1, _) = node
- val data = node1.data
- visitList(s, data.members, matchModuleMember)
- }
-
- override def defPortAnnotatedNode(s: State, node: Ast.Annotated[AstNode[Ast.DefPort]]) = {
- val (_, node1, _) = node
- val data = node1.data
- val loc = Locations.get(node1.id)
- val name = s.getName(Symbol.Port(node))
- val fileName = XmlWriterState.getPortFileName(name)
- addMapping(s, fileName, loc)
- }
-
- override def defStructAnnotatedNode(s: State, node: Ast.Annotated[AstNode[Ast.DefStruct]]) = {
- val (_, node1, _) = node
- val data = node1.data
- val loc = Locations.get(node1.id)
- val name = s.getName(Symbol.Struct(node))
- val fileName = XmlWriterState.getStructFileName(name)
- addMapping(s, fileName, loc)
- }
-
- override def defTopologyAnnotatedNode(s: State, aNode: Ast.Annotated[AstNode[Ast.DefTopology]]) = {
- val (_, node, _) = aNode
- val data = node.data
- val loc = Locations.get(node.id)
- val name = s.getName(Symbol.Topology(aNode))
- val fileName = XmlWriterState.getTopologyFileName(name)
- addMapping(s, fileName, loc)
- }
-
- override def transUnit(s: State, tu: Ast.TransUnit) =
- visitList(s, tu.members, matchTuMember)
-
- private def addMapping(s: State, fileName: String, loc: Location) =
- s.locationMap.get(fileName) match {
- case Some(prevLoc) => Left(CodeGenError.DuplicateXmlFile(fileName, loc, prevLoc))
- case None =>
- val locationMap = s.locationMap + (fileName -> loc)
- Right(s.copy(locationMap = locationMap))
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/DpPortXmlLowering.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/DpPortXmlLowering.scala
deleted file mode 100644
index 4f621ea98..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/DpPortXmlLowering.scala
+++ /dev/null
@@ -1,92 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.analysis._
-import fpp.compiler.ast._
-import fpp.compiler.util._
-
-/** Lower a special data product port to a form that the XML autocoder
- * can understand. */
-case class DpPortXmlLowering(
- s: XmlWriterState,
- name: String,
- special: PortInstance.Special
-) {
-
- val aNode = special.aNode
-
- val specifier = special.specifier
-
- def lower: Option[PortInstance.General] =
- for (generalSpec <- lowerAstSpec) yield {
- val generalNode = AstNode.create(generalSpec, aNode._2.id)
- val generalANode = (aNode._1, generalNode, aNode._3)
- val generalKind = lowerKind.get
- val size = 1
- val ty = lowerType.get
- PortInstance.General(
- generalANode,
- generalSpec,
- generalKind,
- size,
- ty
- )
- }
-
- /** Lower the AST kind */
- private def lowerAstKind: Option[Ast.SpecPortInstance.GeneralKind] =
- (specifier.inputKind, specifier.kind) match {
- case (_, Ast.SpecPortInstance.ProductGet) =>
- Some(Ast.SpecPortInstance.Output)
- case (_, Ast.SpecPortInstance.ProductRequest) =>
- Some(Ast.SpecPortInstance.Output)
- case (Some(Ast.SpecPortInstance.Async), Ast.SpecPortInstance.ProductRecv) =>
- Some(Ast.SpecPortInstance.AsyncInput)
- case (Some(Ast.SpecPortInstance.Guarded), Ast.SpecPortInstance.ProductRecv) =>
- Some(Ast.SpecPortInstance.GuardedInput)
- case (Some(Ast.SpecPortInstance.Sync), Ast.SpecPortInstance.ProductRecv) =>
- Some(Ast.SpecPortInstance.SyncInput)
- case (_, Ast.SpecPortInstance.ProductSend) =>
- Some(Ast.SpecPortInstance.Output)
- case _ => None
- }
-
- /** Lower the AST specifier */
- private def lowerAstSpec: Option[Ast.SpecPortInstance.General] =
- for (kind <- lowerAstKind) yield Ast.SpecPortInstance.General(
- kind,
- name,
- None,
- None,
- specifier.priority,
- specifier.queueFull
- )
-
- /** Lower the semantic kind */
- private def lowerKind: Option[PortInstance.General.Kind] =
- (specifier.inputKind, specifier.kind) match {
- case (_, Ast.SpecPortInstance.ProductGet) =>
- Some(PortInstance.General.Kind.Output)
- case (_, Ast.SpecPortInstance.ProductRequest) =>
- Some(PortInstance.General.Kind.Output)
- case (Some(Ast.SpecPortInstance.Async), Ast.SpecPortInstance.ProductRecv) =>
- Some(PortInstance.General.Kind.AsyncInput(
- special.priority,
- special.queueFull.get
- ))
- case (Some(Ast.SpecPortInstance.Guarded), Ast.SpecPortInstance.ProductRecv) =>
- Some(PortInstance.General.Kind.GuardedInput)
- case (Some(Ast.SpecPortInstance.Sync), Ast.SpecPortInstance.ProductRecv) =>
- Some(PortInstance.General.Kind.SyncInput)
- case (_, Ast.SpecPortInstance.ProductSend) =>
- Some(PortInstance.General.Kind.Output)
- case _ => None
- }
-
- /** Lower the port type */
- private def lowerType: Option[PortInstance.Type] =
- s.a.useDefMap.get(aNode._2.id) match {
- case Some(s: Symbol.Port) => Some(PortInstance.Type.DefPort(s))
- case _ => None
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/EnumXmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/EnumXmlWriter.scala
deleted file mode 100644
index dcef50266..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/EnumXmlWriter.scala
+++ /dev/null
@@ -1,57 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.analysis._
-import fpp.compiler.ast._
-import fpp.compiler.util._
-
-/** Write out F Prime XML for enum definitions */
-object EnumXmlWriter extends AstVisitor with LineUtils {
-
- type In = XmlWriterState
-
- type Out = List[Line]
-
- override def default(s: XmlWriterState) = Nil
-
- override def defEnumAnnotatedNode(s: XmlWriterState, aNode: Ast.Annotated[AstNode[Ast.DefEnum]]) = {
- val node = aNode._2
- val data = node.data
- val enumType @ Type.Enum(_, _, _) = s.a.typeMap(node.id)
- val tags = {
- val namespaceAndName = s.getNamespaceAndName(Symbol.Enum(aNode))
- val serializeType = TypeXmlWriter.getName(s, enumType.repType)
- val defaultValue = ValueXmlWriter.write(s, enumType.getDefaultValue.get).
- replaceAll("^.*::", "")
- val pairs = namespaceAndName ++ List(
- ("serialize_type", serializeType),
- ("default", defaultValue)
- )
- XmlTags.tags("enum", pairs)
- }
- val body = {
- val comment = AnnotationXmlWriter.multilineComment(aNode)
- val members = data.constants.map(defEnumConstantAnnotatedNode(s, _))
- comment ++ members
- }
- XmlTags.taggedLines(tags)(body.map(indentIn))
- }
-
- private def defEnumConstantAnnotatedNode(
- s: XmlWriterState,
- aNode: Ast.Annotated[AstNode[Ast.DefEnumConstant]]
- ): Line = {
- val node = aNode._2
- val data = node.data
- val namePair = ("name", data.name)
- val valuePair = {
- val Value.EnumConstant(value, _) = s.a.valueMap(node.id)
- ("value", value._2.toString)
- }
- val pairs = AnnotationXmlWriter.singleLineComment(aNode) match {
- case Some(commentPair) => List(namePair, valuePair, commentPair)
- case None => List(namePair, valuePair)
- }
- line(XmlTags.openCloseTag("item", pairs))
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/FormalParamsXmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/FormalParamsXmlWriter.scala
deleted file mode 100644
index 4b19c3fa7..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/FormalParamsXmlWriter.scala
+++ /dev/null
@@ -1,43 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.analysis._
-import fpp.compiler.ast._
-import fpp.compiler.util._
-
-/** Write out F Prime XML for formal parameters */
-object FormalParamsXmlWriter extends LineUtils {
-
- def formalParamList(
- s: XmlWriterState,
- params: Ast.FormalParamList
- ): List[Line] = params match {
- case Nil => Nil
- case _ =>
- val ls = params.flatMap(formalParamAnnotatedNode(s, _))
- val tags = XmlTags.tags("args", Nil)
- XmlTags.taggedLines (tags) (ls.map(indentIn))
- }
-
- def formalParamAnnotatedNode(
- s: XmlWriterState,
- aNode: Ast.Annotated[AstNode[Ast.FormalParam]]
- ): List[Line] = {
- val node = aNode._2
- val data = node.data
- val pairs = {
- val t = s.a.typeMap(data.typeName.id)
- val passBy = data.kind match {
- case Ast.FormalParam.Ref => List(("pass_by", "reference"))
- case _ => Nil
- }
- ("name", data.name) :: (TypeXmlWriter.getPairs(s, t) ++ passBy)
- }
- AnnotationXmlWriter.multilineComment(aNode) match {
- case Nil => lines(XmlTags.openCloseTag("arg", pairs))
- case comment =>
- val tags = XmlTags.tags("arg", pairs)
- XmlTags.taggedLines (tags) (comment.map(indentIn))
- }
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/FormatXmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/FormatXmlWriter.scala
deleted file mode 100644
index 61c416d66..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/FormatXmlWriter.scala
+++ /dev/null
@@ -1,74 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.analysis._
-import fpp.compiler.ast._
-import fpp.compiler.util._
-
-/** Write an FPP format as XML */
-object FormatXmlWriter {
-
- /** Convert a format field and type name to a string */
- def fieldToString(f: Format.Field, tn: AstNode[Ast.TypeName]): String = {
- import Format.Field._
- def default = tn.data match {
- case Ast.TypeNameFloat(name) => "%g"
- case Ast.TypeNameInt(typeInt) => (TypeUtils.width(typeInt), TypeUtils.signedness(typeInt)) match {
- case (64, TypeUtils.Signed) => "%ld"
- case (_, TypeUtils.Signed) => "%d"
- case (64, TypeUtils.Unsigned) => "%lu"
- case (_, TypeUtils.Unsigned) => "%u"
- }
- case Ast.TypeNameQualIdent(name) => "%s"
- case Ast.TypeNameBool => "%d"
- case Ast.TypeNameString(size) => "%s"
- }
- def integer(t: Integer.Type) = tn.data match {
- case Ast.TypeNameInt(typeInt) => (t, TypeUtils.width(typeInt), TypeUtils.signedness(typeInt)) match {
- case (Integer.Decimal, 64, TypeUtils.Signed) => "%ld"
- case (Integer.Decimal, 64, TypeUtils.Unsigned) => "%lu"
- case (Integer.Hexadecimal, 64, _) => "%lx"
- case (Integer.Octal, 64, _) => "%lo"
- case (Integer.Character, 64, _) => default
- case (Integer.Character, _, _) => "%c"
- case (Integer.Decimal, _, TypeUtils.Signed) => "%d"
- case (Integer.Decimal, _, TypeUtils.Unsigned) => "%u"
- case (Integer.Hexadecimal, _, _) => "%x"
- case (Integer.Octal, _, _) => "%o"
- }
- case _ => default
- }
- def rational(precision: Option[BigInt], t: Rational.Type) = tn.data match {
- case Ast.TypeNameFloat(_) => {
- val precisionStr = precision match {
- case Some(p) => s".${p.toString}"
- case None => ""
- }
- t match {
- case Rational.Exponent => s"%${precisionStr}e"
- case Rational.Fixed => s"%${precisionStr}f"
- case Rational.General => s"%${precisionStr}g"
- }
- }
- case _ => default
- }
- f match {
- case Default => default
- case Integer(t) => integer(t)
- case Rational(precision, t) => rational(precision, t)
- }
- }
-
- /** Convert a format to a string */
- def formatToString(f: Format, nodes: List[AstNode[Ast.TypeName]]): String = {
- def escapePercent(s: String) = s.replaceAll("%", "%%")
- val fields = f.fields
- if (fields.length != nodes.length)
- throw new InternalError("number of nodes should match number of fields")
- val pairs = fields zip nodes
- val s0 = escapePercent(f.prefix)
- pairs.foldLeft(s0)({
- case (s1, ((field, s2), tn)) => s1 ++ fieldToString(field, tn) ++ escapePercent(s2)
- })
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/PortXmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/PortXmlWriter.scala
deleted file mode 100644
index 62c153c74..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/PortXmlWriter.scala
+++ /dev/null
@@ -1,45 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.analysis._
-import fpp.compiler.ast._
-import fpp.compiler.util._
-
-/** Write out F Prime XML for port definitions */
-object PortXmlWriter extends AstVisitor with LineUtils {
-
- type In = XmlWriterState
-
- type Out = List[Line]
-
- override def default(s: XmlWriterState) = Nil
-
- override def defPortAnnotatedNode(
- s: XmlWriterState,
- aNode: Ast.Annotated[AstNode[Ast.DefPort]]
- ) = {
- val node = aNode._2
- val data = node.data
- val tags = {
- val pairs = s.getNamespaceAndName(Symbol.Port(aNode))
- XmlTags.tags("interface", pairs)
- }
- val body = {
- val comment = AnnotationXmlWriter.multilineComment(aNode)
- val imports = {
- val Right(a) = UsedSymbols.defPortAnnotatedNode(s.a, aNode)
- s.writeImportDirectives(a.usedSymbolSet)
- }
- val args = FormalParamsXmlWriter.formalParamList(s, data.params)
- val ret = data.returnType match {
- case Some(typeName) =>
- val t = s.a.typeMap(typeName.id)
- val pairs = TypeXmlWriter.getPairs(s, t)
- lines(XmlTags.openCloseTag("return", pairs))
- case None => Nil
- }
- comment ++ imports ++ args ++ ret
- }
- XmlTags.taggedLines(tags)(body.map(indentIn))
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/StructXmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/StructXmlWriter.scala
deleted file mode 100644
index c6c8b3d3b..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/StructXmlWriter.scala
+++ /dev/null
@@ -1,76 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.analysis._
-import fpp.compiler.ast._
-import fpp.compiler.util._
-
-/** Write out F Prime XML for struct definitions */
-object StructXmlWriter extends AstVisitor with LineUtils {
-
- type In = XmlWriterState
-
- type Out = List[Line]
-
- override def default(s: XmlWriterState) = Nil
-
- override def defStructAnnotatedNode(s: XmlWriterState, aNode: Ast.Annotated[AstNode[Ast.DefStruct]]) = {
- val node = aNode._2
- val data = node.data
- val tags = {
- val pairs = s.getNamespaceAndName(Symbol.Struct(aNode))
- XmlTags.tags("serializable", pairs)
- }
- val body = {
- val Right(a) = UsedSymbols.defStructAnnotatedNode(s.a, aNode)
- val comment = AnnotationXmlWriter.multilineComment(aNode)
- val imports = s.writeImportDirectives(a.usedSymbolSet)
- val members = {
- val tags = XmlTags.tags("members")
- val st @ Type.Struct(_, _, _, _, _) = s.a.typeMap(node.id)
- val ls = data.members.flatMap(structTypeMemberAnnotatedNode(s, st, _))
- XmlTags.taggedLines (tags) (ls.map(indentIn))
- }
- comment ++ imports ++ members
- }
- XmlTags.taggedLines(tags)(body.map(indentIn))
- }
-
- def structTypeMemberAnnotatedNode(
- s: XmlWriterState,
- structType: Type.Struct,
- aNode: Ast.Annotated[AstNode[Ast.StructTypeMember]]
- ): Out = {
- val node = aNode._2
- val data = node.data
- val t = s.a.typeMap(data.typeName.id)
- val pairs = {
- val nameAndType = ("name", data.name) :: TypeXmlWriter.getPairs(s, t)
- val size = (t, structType.sizes.get(data.name)) match {
- case (_, Some(n)) => List(("array_size", n.toString))
- case _ => Nil
- }
- val format = {
- val format = structType.formats.get(data.name) match {
- case Some(format) => format
- case None => Format("", List((Format.Field.Default,"")))
- }
- val s = FormatXmlWriter.formatToString(format, List(data.typeName))
- List(("format", s))
- }
- val comment = AnnotationXmlWriter.singleLineComment(aNode) match {
- case Some(comment) => List(comment)
- case None => Nil
- }
- nameAndType ++ size ++ format ++ comment
- }
- val body = {
- val defaultValue = structType.getDefaultValue.get.
- anonStruct.members(data.name)
- val xmlDefaultValue = ValueXmlWriter.write(s, defaultValue)
- val tags = XmlTags.tags("default")
- lines(XmlTags.taggedString (tags) (xmlDefaultValue))
- }
- XmlTags.taggedLines("member", pairs) (body.map(indentIn))
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/TopologyXmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/TopologyXmlWriter.scala
deleted file mode 100644
index 770a0a2c2..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/TopologyXmlWriter.scala
+++ /dev/null
@@ -1,99 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.analysis._
-import fpp.compiler.ast._
-import fpp.compiler.util._
-
-/** Write out F Prime XML for topology definitions */
-object TopologyXmlWriter extends AstVisitor with LineUtils {
-
- type In = XmlWriterState
-
- type Out = List[Line]
-
- override def defTopologyAnnotatedNode(
- s: XmlWriterState,
- aNode: Ast.Annotated[AstNode[Ast.DefTopology]]
- ) = {
- val symbol = Symbol.Topology(aNode)
- val t = s.a.topologyMap(symbol)
- val data = aNode._2.data
- val pairs = List(("name", s.getName(symbol)))
- val body = {
- List(
- writeImports(s, t),
- writeInstances(s, t),
- writeConnections(s, t)
- ).flatMap(XmlWriterState.addBlankPrefix) :+ Line.blank
- }
- XmlTags.taggedLines ("assembly", pairs) (body.map(indentIn))
- }
-
- override def default(s: XmlWriterState) = Nil
-
- private def writeImports(s: XmlWriterState, t: Topology) = {
- val symbols = t.instanceMap.keys.map(ci => Symbol.Component(ci.component.aNode))
- s.writeImportDirectives(symbols)
- }
-
- private def writeInstances(s: XmlWriterState, t: Topology) = {
- def writeInstance(ci: ComponentInstance) = {
- val cis = Symbol.ComponentInstance(ci.aNode)
- val cs = Symbol.Component(ci.component.aNode)
- val pairs = List(
- ("namespace", s.cppWriterState.getNamespace(cs).getOrElse("")),
- ("name", s.getName(cis)),
- ("type", cs.getUnqualifiedName),
- ("base_id", XmlWriterState.writeId(ci.baseId)),
- ("base_id_window", (ci.maxId - ci.baseId + 1).toString)
- )
- XmlTags.taggedLines ("instance", pairs) (Nil)
- }
- val instances = t.instanceMap.keys.toArray.sortWith {
- case (a, b) =>
- if (a.baseId != b.baseId) a.baseId < b.baseId
- else a < b
- }
- //t.instanceMap.keys.toArray.sorted.flatMap(writeInstance).toList
- instances.flatMap(writeInstance).toList
- }
-
- private def writeConnections(s: XmlWriterState, t: Topology) = {
- def getPairs(
- endpoint: Connection.Endpoint,
- portNumber: Int
- ): List[(String, String)] = {
- val pii = endpoint.port
- List(
- ("component", pii.componentInstance.getUnqualifiedName),
- ("port", pii.portInstance.getUnqualifiedName),
- ("type", "[unused]"),
- ("num", portNumber.toString)
- )
- }
- def writeConnection(c: Connection) = {
- val pairs = List(("name", "[unused]"))
- val body = {
- val fromPortNumber = t.fromPortNumberMap(c)
- val toPortNumber = t.toPortNumberMap(c)
- val source = XmlTags.taggedLines (
- "source", getPairs(c.from, fromPortNumber)
- ) (Nil)
- val target = XmlTags.taggedLines (
- "target", getPairs(c.to, toPortNumber)
- ) (Nil)
- source ++ target
- }
- XmlTags.taggedLines ("connection", pairs) (body.map(indentIn))
- }
- def writeGraph(graphName: String): List[Line] = {
- List (
- XmlWriterState.writeComment(s"@FPL START $graphName"),
- t.sortConnections(t.connectionMap(graphName)).flatMap(writeConnection),
- XmlWriterState.writeComment(s"@FPL END")
- ).flatten
- }
- Line.blankSeparated (writeGraph) (t.connectionMap.keys.toList.sorted)
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/TypeXmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/TypeXmlWriter.scala
deleted file mode 100644
index fd037acc7..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/TypeXmlWriter.scala
+++ /dev/null
@@ -1,29 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.analysis._
-import fpp.compiler.util._
-
-/** Write an FPP type as XML */
-object TypeXmlWriter {
-
- /** Get the name of a type */
- def getName(s: XmlWriterState, t: Type): String =
- TypeCppWriter.getName(s.cppWriterState, t, "string")
-
- /** Get the size of a type */
- def getSize(s: XmlWriterState, t: Type): Option[String] = t match {
- case Type.String(Some(node)) => Some(s.a.valueMap(node.id).toString)
- case Type.String(None) => Some(s.defaultStringSize.toString)
- case _ => None
- }
-
- /** Get the key-value pairs for a type */
- def getPairs(s: XmlWriterState, t: Type, nameTag: String = "type"): List[(String,String)] = {
- val name = (nameTag, getName(s, t))
- getSize(s, t) match {
- case Some(size) => List(name, ("size", size))
- case None => List(name)
- }
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/ValueXmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/ValueXmlWriter.scala
deleted file mode 100644
index 9497d4dc2..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/ValueXmlWriter.scala
+++ /dev/null
@@ -1,15 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.ast._
-import fpp.compiler.analysis._
-import fpp.compiler.util._
-
-/** Write an FPP value as XML */
-object ValueXmlWriter {
-
- /** Write a value */
- def write(s: XmlWriterState, v: Value): String = {
- ValueCppWriter.write(s.cppWriterState, v)
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/XmlTags.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/XmlTags.scala
deleted file mode 100644
index 6a9ce1f51..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/XmlTags.scala
+++ /dev/null
@@ -1,57 +0,0 @@
-package fpp.compiler.codegen
-
-/** Utilities for constructing XML Tags */
-object XmlTags extends LineUtils {
-
- def closeTag(name: String): String = s"$name>"
-
- def openCloseTag(name: String, pairs: List[(String, String)] = Nil): String = openTagPrefix(name, pairs) ++ "/>"
-
- def openTag(name: String, pairs: List[(String, String)] = Nil): String = openTagPrefix(name, pairs) ++ ">"
-
- def quoted(s: String): String = {
- // Add the enclosing quotation marks for the XML attribute
- val q = "\""
- s"$q$s$q"
- }
-
- def escaped(s: String): String = {
- // These are the characters that must be replaced in an XML attribute
- val replacements = List(
- ("&", "&"),
- ("'", "'"),
- ("<", "<"),
- (">", ">"),
- ("\"", """),
- )
- replacements.foldLeft (s) ({ case (s, (a, b)) => s.replaceAll(a, b) })
- }
-
- def taggedLines (tags: (String, String)) (ls: List[Line]): List[Line] = {
- val (openTag, closeTag) = tags
- (line(openTag) :: ls) :+ line(closeTag)
- }
-
- def taggedLines (name: String, pairs: List[(String, String)] = Nil) (ls: List[Line]): List[Line] =
- ls match {
- case Nil => lines(openCloseTag(name, pairs))
- case _ => taggedLines (tags(name, pairs)) (ls)
- }
-
- def taggedLinesOpt (name: String, pairs: List[(String, String)] = Nil) (ls: List[Line]): List[Line] =
- ls match {
- case Nil => Nil
- case ls1 => taggedLines (name, pairs) (ls1)
- }
-
- def taggedString (tags: (String, String)) (s: String): String = {
- val (openTag, closeTag) = tags
- openTag ++ s ++ closeTag
- }
-
- def tags(name: String, pairs: List[(String, String)] = Nil): (String, String) = (openTag(name, pairs), closeTag(name))
-
- private def openTagPrefix(name: String, pairs: List[(String, String)]) =
- pairs.foldLeft(s"<$name")({ case (s, key -> value) => s ++ s" $key=${quoted(escaped(value))}" })
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/XmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/XmlWriter.scala
deleted file mode 100644
index 955d544dd..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/XmlWriter.scala
+++ /dev/null
@@ -1,107 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.analysis._
-import fpp.compiler.ast._
-import fpp.compiler.util._
-
-/** Write out F Prime XML */
-object XmlWriter extends AstStateVisitor with LineUtils {
-
- type State = XmlWriterState
-
- override def defArrayAnnotatedNode(s: XmlWriterState, aNode: Ast.Annotated[AstNode[Ast.DefArray]]) = {
- val (_, node, _) = aNode
- val data = node.data
- val name = s.getName(Symbol.Array(aNode))
- val fileName = XmlWriterState.getArrayFileName(name)
- val lines = ArrayXmlWriter.defArrayAnnotatedNode(s, aNode)
- writeXmlFile(s, fileName, lines)
- }
-
- override def defComponentAnnotatedNode(s: XmlWriterState, aNode: Ast.Annotated[AstNode[Ast.DefComponent]]) = {
- val (_, node, _) = aNode
- val data = node.data
- val name = s.getName(Symbol.Component(aNode))
- val fileName = XmlWriterState.getComponentFileName(name)
- val lines = ComponentXmlWriter.defComponentAnnotatedNode(s, aNode)
- for {
- _ <- visitList(s, data.members, matchComponentMember)
- s <- writeXmlFile(s, fileName, lines)
- }
- yield s
- }
-
- override def defEnumAnnotatedNode(s: XmlWriterState, aNode: Ast.Annotated[AstNode[Ast.DefEnum]]) = {
- val (_, node, _) = aNode
- val data = node.data
- val name = s.getName(Symbol.Enum(aNode))
- val fileName = XmlWriterState.getEnumFileName(name)
- val lines = EnumXmlWriter.defEnumAnnotatedNode(s, aNode)
- writeXmlFile(s, fileName, lines)
- }
-
- override def defModuleAnnotatedNode(
- s: XmlWriterState,
- aNode: Ast.Annotated[AstNode[Ast.DefModule]]
- ) = {
- val (_, node, _) = aNode
- val data = node.data
- visitList(s, data.members, matchModuleMember)
- }
-
- override def defPortAnnotatedNode(s: XmlWriterState, aNode: Ast.Annotated[AstNode[Ast.DefPort]]) = {
- val (_, node, _) = aNode
- val data = node.data
- val name = s.getName(Symbol.Port(aNode))
- val fileName = XmlWriterState.getPortFileName(name)
- val lines = PortXmlWriter.defPortAnnotatedNode(s, aNode)
- writeXmlFile(s, fileName, lines)
- }
-
- override def defStructAnnotatedNode(s: XmlWriterState, aNode: Ast.Annotated[AstNode[Ast.DefStruct]]) = {
- val (_, node, _) = aNode
- val loc = Locations.get(node.id)
- val data = node.data
- val name = s.getName(Symbol.Struct(aNode))
- val fileName = XmlWriterState.getStructFileName(name)
- val lines = StructXmlWriter.defStructAnnotatedNode(s, aNode)
- for {
- _ <- if (data.members.length == 0) Left(CodeGenError.EmptyStruct(loc)) else Right(())
- s <- writeXmlFile(s, fileName, lines)
- } yield s
- }
-
- override def defTopologyAnnotatedNode(s: XmlWriterState, aNode: Ast.Annotated[AstNode[Ast.DefTopology]]) = {
- val (_, node, _) = aNode
- val data = node.data
- val name = s.getName(Symbol.Topology(aNode))
- val fileName = XmlWriterState.getTopologyFileName(name)
- val lines = TopologyXmlWriter.defTopologyAnnotatedNode(s, aNode)
- writeXmlFile(s, fileName, lines)
- }
-
- override def transUnit(s: XmlWriterState, tu: Ast.TransUnit) =
- visitList(s, tu.members, matchTuMember)
-
- private def writeXmlHeader(fileName: String) = lines(
- s"""|
- |
- |
- |"""
- )
-
- private def writeXmlFile(s: XmlWriterState, fileName: String, lines: List[Line]) = {
- val path = java.nio.file.Paths.get(s.dir, fileName)
- val file = File.Path(path)
- val headerLines = writeXmlHeader(fileName)
- for (writer <- file.openWrite()) yield {
- (headerLines ++ lines).map(Line.write(writer) _)
- writer.close()
- s
- }
- }
-
-}
diff --git a/compiler/lib/src/main/scala/codegen/XmlWriter/XmlWriterState.scala b/compiler/lib/src/main/scala/codegen/XmlWriter/XmlWriterState.scala
deleted file mode 100644
index 34b29c8c3..000000000
--- a/compiler/lib/src/main/scala/codegen/XmlWriter/XmlWriterState.scala
+++ /dev/null
@@ -1,121 +0,0 @@
-package fpp.compiler.codegen
-
-import fpp.compiler.analysis._
-import fpp.compiler.util._
-
-/** XML Writer state */
-case class XmlWriterState(
- /** The result of semantic analysis */
- a: Analysis,
- /** The output directory */
- dir: String = ".",
- /** The list of include prefixes */
- prefixes: List[String] = Nil,
- /** The default string size */
- defaultStringSize: Int = XmlWriterState.defaultDefaultStringSize,
- /** The map from strings to locations */
- locationMap: Map[String, Location] = Map()
-) {
-
- /** CppWriterState for writing C++ */
- val cppWriterState = CppWriterState(a)
-
- /** Removes the longest prefix from a Java path */
- def removeLongestPrefix(path: File.JavaPath): File.JavaPath =
- File.removeLongestPrefix(prefixes)(path)
-
- /** Write import directives as lines */
- def writeImportDirectives(usedSymbols: Iterable[Symbol]): List[Line] = {
- def getDirectiveForSymbol(sym: Symbol): Option[String] =
- for {
- tagFileName <- sym match {
- case Symbol.AbsType(aNode) =>
- val symbol = Symbol.AbsType(aNode)
- val name = getName(symbol)
- Some("include_header", s"${name}.hpp")
- case Symbol.Array(aNode) => Some(
- "import_array_type",
- XmlWriterState.getArrayFileName(getName(Symbol.Array(aNode)))
- )
- case Symbol.Component(aNode) => Some(
- "import_component_type",
- XmlWriterState.getComponentFileName(getName(Symbol.Component(aNode)))
- )
- case Symbol.Enum(aNode) => Some(
- "import_enum_type",
- XmlWriterState.getEnumFileName(getName(Symbol.Enum(aNode)))
- )
- case Symbol.Port(aNode) => Some(
- "import_port_type",
- XmlWriterState.getPortFileName(getName(Symbol.Port(aNode)))
- )
- case Symbol.Struct(aNode) => Some(
- "import_serializable_type",
- XmlWriterState.getStructFileName(getName(Symbol.Struct(aNode)))
- )
- case _ => None
- }
- }
- yield {
- val loc = sym.getLoc.tuLocation
- val (tagName, fileName) = tagFileName
- val fullPath = loc.getNeighborPath(fileName)
- val path = removeLongestPrefix(fullPath)
- val tags = XmlTags.tags(tagName)
- XmlTags.taggedString(tags)(path.toString)
- }
- val array = usedSymbols.map(getDirectiveForSymbol(_)).
- filter(_.isDefined).map(_.get).toArray
- scala.util.Sorting.quickSort(array)
- array.toList.map(Line(_))
- }
-
- /** Write an FPP symbol as XML */
- def writeSymbol(symbol: Symbol): String = cppWriterState.writeSymbol(symbol)
-
- /** Gets the unqualified name associated with a symbol. */
- def getName(symbol: Symbol): String = cppWriterState.getName(symbol)
-
- /** Gets the namespace and name associated with a symbol */
- def getNamespaceAndName(symbol: Symbol): List[(String, String)] = {
- val namespace = cppWriterState.getNamespace(symbol)
- val namePair = ("name", getName(symbol))
- namespace match {
- case Some(n) => List(("namespace", n), namePair)
- case None => List(namePair)
- }
- }
-
-}
-
-case object XmlWriterState extends LineUtils {
-
- /** The default default string size */
- val defaultDefaultStringSize = 80
-
- /** Gets the generated XML file name for an array definition */
- def getArrayFileName(baseName: String): String = s"${baseName}ArrayAi.xml"
-
- /** Gets the generated XML file name for an enum definition */
- def getEnumFileName(baseName: String): String = s"${baseName}EnumAi.xml"
-
- /** Gets the generated XML file name for a component definition */
- def getComponentFileName(baseName: String): String = s"${baseName}ComponentAi.xml"
-
- /** Gets the generated XML file name for a port definition */
- def getPortFileName(baseName: String): String = s"${baseName}PortAi.xml"
-
- /** Gets the generated XML file name for a struct definition */
- def getStructFileName(baseName: String): String = s"${baseName}SerializableAi.xml"
-
- /** Gets the generated XML file name for a topology definition */
- def getTopologyFileName(baseName: String): String = s"${baseName}TopologyAppAi.xml"
-
- /** Write an XML comment */
- def writeComment(comment: String): List[Line] =
- Line.addPrefixAndSuffix("")
-
- /** Write an identifier */
- def writeId(id: BigInt): String = s"0x${id.toString(16).toUpperCase}"
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/.gitignore b/compiler/tools/fpp-from-xml/test/.gitignore
deleted file mode 100644
index 62a514fc5..000000000
--- a/compiler/tools/fpp-from-xml/test/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-*.out.txt
-*.diff.txt
-default-tests.sh
-default-update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/array/array_enum.ref.txt b/compiler/tools/fpp-from-xml/test/array/array_enum.ref.txt
deleted file mode 100644
index 31fa40755..000000000
--- a/compiler/tools/fpp-from-xml/test/array/array_enum.ref.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-array ArrayEnum = [3] A.B default [
- A.B.C
- ]
diff --git a/compiler/tools/fpp-from-xml/test/array/array_enum.xml b/compiler/tools/fpp-from-xml/test/array/array_enum.xml
deleted file mode 100644
index 1cd266688..000000000
--- a/compiler/tools/fpp-from-xml/test/array/array_enum.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
- A::B
- 3
- %s
-
- A::B::C
-
-
diff --git a/compiler/tools/fpp-from-xml/test/array/array_qual_id.ref.txt b/compiler/tools/fpp-from-xml/test/array/array_qual_id.ref.txt
deleted file mode 100644
index 123df4ff3..000000000
--- a/compiler/tools/fpp-from-xml/test/array/array_qual_id.ref.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-@ FPP from XML: could not translate array value [ A::B(1) ]
-@ FPP from XML: could not translate format string "%r"
-array ArrayQualId = [1] A.B
diff --git a/compiler/tools/fpp-from-xml/test/array/array_qual_id.xml b/compiler/tools/fpp-from-xml/test/array/array_qual_id.xml
deleted file mode 100644
index 65d36ad02..000000000
--- a/compiler/tools/fpp-from-xml/test/array/array_qual_id.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
- A::B
- 1
- %r
-
- A::B(1)
-
-
diff --git a/compiler/tools/fpp-from-xml/test/array/array_string.ref.txt b/compiler/tools/fpp-from-xml/test/array/array_string.ref.txt
deleted file mode 100644
index 4af839b6a..000000000
--- a/compiler/tools/fpp-from-xml/test/array/array_string.ref.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-module A {
-
- module B {
-
- @ Array with string args
- array ArrayString = [2] string size 80 default [
- "abcd"
- "abcd"
- ]
-
- }
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/array/array_string.xml b/compiler/tools/fpp-from-xml/test/array/array_string.xml
deleted file mode 100644
index 7170add43..000000000
--- a/compiler/tools/fpp-from-xml/test/array/array_string.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
- Array with string args
- string
- 2
- %s
-
- "abcd"
- "abcd"
-
-
diff --git a/compiler/tools/fpp-from-xml/test/array/check-fpp b/compiler/tools/fpp-from-xml/test/array/check-fpp
deleted file mode 100755
index 4246bc6a9..000000000
--- a/compiler/tools/fpp-from-xml/test/array/check-fpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh -e
-
-fpp_syntax=../../../../bin/fpp-syntax
-
-files=`find . -name '*.ref.txt' | egrep -v 'error|missing'`
-for file in $files
-do
- echo "checking $file"
- $fpp_syntax < $file
-done
diff --git a/compiler/tools/fpp-from-xml/test/array/clean b/compiler/tools/fpp-from-xml/test/array/clean
deleted file mode 100755
index b042fe2f0..000000000
--- a/compiler/tools/fpp-from-xml/test/array/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-. ../../../../scripts/utils.sh
-
-clean
diff --git a/compiler/tools/fpp-from-xml/test/array/run b/compiler/tools/fpp-from-xml/test/array/run
deleted file mode 100755
index bf6f79f51..000000000
--- a/compiler/tools/fpp-from-xml/test/array/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/array/tests.sh b/compiler/tools/fpp-from-xml/test/array/tests.sh
deleted file mode 100644
index d5dacfb41..000000000
--- a/compiler/tools/fpp-from-xml/test/array/tests.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-tests="
-array_enum
-array_qual_id
-array_string
-"
diff --git a/compiler/tools/fpp-from-xml/test/array/update-ref b/compiler/tools/fpp-from-xml/test/array/update-ref
deleted file mode 100755
index c905604d4..000000000
--- a/compiler/tools/fpp-from-xml/test/array/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/check-fpp b/compiler/tools/fpp-from-xml/test/check-fpp
deleted file mode 100755
index cfd924260..000000000
--- a/compiler/tools/fpp-from-xml/test/check-fpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh -e
-
-. ../../../scripts/utils.sh
-
-for target in `find . -mindepth 2 -name check-fpp`
-do
- dir=`dirname $target`
- echo "[ $dir ]"
- (cd $dir; ./check-fpp)
-done
diff --git a/compiler/tools/fpp-from-xml/test/clean b/compiler/tools/fpp-from-xml/test/clean
deleted file mode 100755
index 25d0c051c..000000000
--- a/compiler/tools/fpp-from-xml/test/clean
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh -e
-
-. ../../../scripts/utils.sh
-
-for target in `find . -mindepth 2 -name clean`
-do
- dir=`dirname $target`
- (cd $dir; ./clean)
-done
-clean
diff --git a/compiler/tools/fpp-from-xml/test/component/check-fpp b/compiler/tools/fpp-from-xml/test/component/check-fpp
deleted file mode 100755
index 3662f5797..000000000
--- a/compiler/tools/fpp-from-xml/test/component/check-fpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh -e
-
-fpp_syntax=../../../../bin/fpp-syntax
-
-# These tests are component fragments
-fragments="commands|events|internal_ports|parameters|telemetry\.ref"
-# These tests do not generate valid FPP
-skip="telemetry_bad_limit"
-
-# Check whole components
-files=`find . -name '*.ref.txt' | egrep -v "error|missing|$fragments|$skip"`
-for file in $files
-do
- echo "checking $file"
- $fpp_syntax < $file
-done
-
-# Check component fragments
-files=`find . -name '*.ref.txt' | egrep "$fragments"`
-for file in $files
-do
- echo "checking $file"
- {
- echo 'passive component C {'
- cat $file
- echo '}'
- } | $fpp_syntax
-done
diff --git a/compiler/tools/fpp-from-xml/test/component/clean b/compiler/tools/fpp-from-xml/test/component/clean
deleted file mode 100755
index b042fe2f0..000000000
--- a/compiler/tools/fpp-from-xml/test/component/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-. ../../../../scripts/utils.sh
-
-clean
diff --git a/compiler/tools/fpp-from-xml/test/component/commands.ref.txt b/compiler/tools/fpp-from-xml/test/component/commands.ref.txt
deleted file mode 100644
index d9bdd99f4..000000000
--- a/compiler/tools/fpp-from-xml/test/component/commands.ref.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-enum EventLevel {
- FILTER_WARNING_HI = 0
- FILTER_WARNING_LO = 1
- FILTER_COMMAND = 2
- FILTER_ACTIVITY_HI = 3
- FILTER_ACTIVITY_LO = 4
- FILTER_DIAGNOSTIC = 5
-}
-
-enum FilterEnabled {
- FILTER_ENABLED = 0
- FILTER_DISABLED = 1
-}
-
-@ Set filter for reporting events. Events are not stored in component.
-sync command SET_EVENT_FILTER(
- FilterLevel: EventLevel @< Filter level
- FilterEnable: FilterEnabled @< Filter state
- ) \
- opcode 0
-
-enum IdFilterEnabled {
- ID_ENABLED = 0
- ID_DISABLED = 1
-}
-
-@ Filter a particular ID
-async command SET_ID_FILTER(
- ID: U32
- IdFilterEnable: IdFilterEnabled @< ID filter state
- ) \
- opcode 2
-
-@ Dump the filter states via events
-async command DUMP_FILTER_STATE \
- opcode 3
diff --git a/compiler/tools/fpp-from-xml/test/component/commands.xml b/compiler/tools/fpp-from-xml/test/component/commands.xml
deleted file mode 100644
index 586abb87a..000000000
--- a/compiler/tools/fpp-from-xml/test/component/commands.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
- Set filter for reporting events. Events are not stored in component.
-
-
-
-
-
-
-
-
-
-
-
- Filter level
-
-
-
-
-
-
- Filter state
-
-
-
-
-
- Filter a particular ID
-
-
-
-
-
-
-
-
-
- ID filter state
-
-
-
-
-
- Dump the filter states via events
-
-
-
\ No newline at end of file
diff --git a/compiler/tools/fpp-from-xml/test/component/events.ref.txt b/compiler/tools/fpp-from-xml/test/component/events.ref.txt
deleted file mode 100644
index a0dacec2c..000000000
--- a/compiler/tools/fpp-from-xml/test/component/events.ref.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-enum EventFilterState {
- FILT_WARNING_HI = 0
- FILT_WARNING_LO = 1
- FILT_COMMAND = 2
- FILT_ACTIVITY_HI = 3
- FILT_ACTIVITY_LO = 4
- FILT_DIAGNOSTIC = 5
-}
-
-@ Dump severity filter state
-event SEVERITY_FILTER_STATE(
- $severity: EventFilterState @< The severity level
- enabled: bool
- ) \
- severity activity low \
- id 0 \
- format "{} filter state. {}"
-
-@ Indicate ID is filtered
-event ID_FILTER_ENABLED(
- ID: U32 @< The ID filtered
- ) \
- severity activity high \
- id 1 \
- format "ID {} is filtered."
-
-@ Attempted to add ID to full ID filter ID
-event ID_FILTER_LIST_FULL(
- ID: U32 @< The ID filtered
- ) \
- severity warning low \
- id 2 \
- format "ID filter list is full. Cannot filter {} ."
-
-@ Removed an ID from the filter
-event ID_FILTER_REMOVED(
- ID: U32 @< The ID removed
- ) \
- severity activity high \
- id 3 \
- format "ID filter ID {} removed."
-
-@ ID not in filter
-event ID_FILTER_NOT_FOUND(
- ID: U32 @< The ID removed
- ) \
- severity warning low \
- id 4 \
- format "ID filter ID {} not found."
diff --git a/compiler/tools/fpp-from-xml/test/component/events.xml b/compiler/tools/fpp-from-xml/test/component/events.xml
deleted file mode 100644
index d982a37ec..000000000
--- a/compiler/tools/fpp-from-xml/test/component/events.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-
-
-
- Dump severity filter state
-
-
-
-
-
-
-
-
-
-
-
- The severity level
-
-
-
-
-
-
-
- Indicate ID is filtered
-
-
-
- The ID filtered
-
-
-
-
-
- Attempted to add ID to full ID filter ID
-
-
-
- The ID filtered
-
-
-
-
-
- Removed an ID from the filter
-
-
-
- The ID removed
-
-
-
-
-
- ID not in filter
-
-
-
- The ID removed
-
-
-
-
\ No newline at end of file
diff --git a/compiler/tools/fpp-from-xml/test/component/general_ports_active.ref.txt b/compiler/tools/fpp-from-xml/test/component/general_ports_active.ref.txt
deleted file mode 100644
index 145b973a2..000000000
--- a/compiler/tools/fpp-from-xml/test/component/general_ports_active.ref.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-module M {
-
- @ Component GeneralPortsActive
- active component GeneralPortsActive {
-
- @ Port p1
- async input port p1: [1] P \
- priority 10 \
- drop
-
- guarded input port p2: [1] P
-
- sync input port p3: [1] P
-
- output port p4: [10] P
-
- async input port p5: [1] serial \
- assert
-
- guarded input port p6: [1] serial
-
- sync input port p7: [1] serial
-
- output port p8: [10] serial
-
- }
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/component/general_ports_active.xml b/compiler/tools/fpp-from-xml/test/component/general_ports_active.xml
deleted file mode 100644
index a94563d3a..000000000
--- a/compiler/tools/fpp-from-xml/test/component/general_ports_active.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
-
- Component GeneralPortsActive
-
-
- PPortAi.xml
-
-
-
-
- Port p1
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/component/general_ports_passive.ref.txt b/compiler/tools/fpp-from-xml/test/component/general_ports_passive.ref.txt
deleted file mode 100644
index be0c28ecb..000000000
--- a/compiler/tools/fpp-from-xml/test/component/general_ports_passive.ref.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-module M {
-
- @ Component GeneralPortsPassive
- passive component GeneralPortsPassive {
-
- @ Port p1
- guarded input port p1: [1] P
-
- sync input port p2: [1] P
-
- output port p3: [10] P
-
- guarded input port p4: [1] serial
-
- sync input port p5: [1] serial
-
- output port p6: [10] serial
-
- }
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/component/general_ports_passive.xml b/compiler/tools/fpp-from-xml/test/component/general_ports_passive.xml
deleted file mode 100644
index 58a867dca..000000000
--- a/compiler/tools/fpp-from-xml/test/component/general_ports_passive.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
- Component GeneralPortsPassive
-
-
- PPortAi.xml
-
-
-
-
- Port p1
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/component/import_dictionary.ref.txt b/compiler/tools/fpp-from-xml/test/component/import_dictionary.ref.txt
deleted file mode 100644
index 469e3f4bf..000000000
--- a/compiler/tools/fpp-from-xml/test/component/import_dictionary.ref.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-module M {
-
- passive component ImportDictionary {
-
- include "A.fppi"
-
- @ FPP from XML: original path was B/C.xml
- include "C.fppi"
-
- }
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/component/import_dictionary.xml b/compiler/tools/fpp-from-xml/test/component/import_dictionary.xml
deleted file mode 100644
index 9c872524f..000000000
--- a/compiler/tools/fpp-from-xml/test/component/import_dictionary.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- A.xml
- B/C.xml
-
-
diff --git a/compiler/tools/fpp-from-xml/test/component/internal_ports.ref.txt b/compiler/tools/fpp-from-xml/test/component/internal_ports.ref.txt
deleted file mode 100644
index 49ee684a9..000000000
--- a/compiler/tools/fpp-from-xml/test/component/internal_ports.ref.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-enum QueueLogSeverity {
- QUEUE_LOG_FATAL = 1 @< A fatal non-recoverable event
- QUEUE_LOG_WARNING_HI = 2 @< A serious but recoverable event
- QUEUE_LOG_WARNING_LO = 3 @< A less serious but recoverable event
- QUEUE_LOG_COMMAND = 4 @< An activity related to commanding
- QUEUE_LOG_ACTIVITY_HI = 5 @< Important informational events
- QUEUE_LOG_ACTIVITY_LO = 6 @< Less important informational events
- QUEUE_LOG_DIAGNOSTIC = 7 @< Software diagnostic events
-}
-
-@ internal interface to send log messages to component thread
-internal port loqQueue(
- $id: FwEventIdType @< Log ID
- ref timeTag: Fw.Time @< Time Tag
- $severity: QueueLogSeverity @< The severity argument
- ref args: Fw.LogBuffer @< Buffer containing serialized log entry
- ) \
- priority 1 \
- drop
diff --git a/compiler/tools/fpp-from-xml/test/component/internal_ports.xml b/compiler/tools/fpp-from-xml/test/component/internal_ports.xml
deleted file mode 100644
index a7150e193..000000000
--- a/compiler/tools/fpp-from-xml/test/component/internal_ports.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
- internal interface to send log messages to component thread
-
-
-
- Log ID
-
-
- Time Tag
-
-
-
-
-
-
-
-
-
-
-
- The severity argument
-
-
- Buffer containing serialized log entry
-
-
-
-
\ No newline at end of file
diff --git a/compiler/tools/fpp-from-xml/test/component/parameters.ref.txt b/compiler/tools/fpp-from-xml/test/component/parameters.ref.txt
deleted file mode 100644
index 57f60d8d5..000000000
--- a/compiler/tools/fpp-from-xml/test/component/parameters.ref.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-@ A test parameter
-param P1: U8 default 12 id 0 \
- set opcode 0 \
- save opcode 1
-
-@ A test parameter
-param P2: F32 default 13.14 id 1 \
- set opcode 2 \
- save opcode 3
-
-enum EventLevel {
- FILTER_WARNING_HI = 0
- FILTER_WARNING_LO = 1
- FILTER_COMMAND = 2
- FILTER_ACTIVITY_HI = 3
- FILTER_ACTIVITY_LO = 4
- FILTER_DIAGNOSTIC = 5
-}
-
-param P3: EventLevel default FILTER_ACTIVITY_LO id 2 \
- set opcode 4 \
- save opcode 5
-
-@ FPP from XML: could not translate default value T()
-param P4: T id 3 \
- set opcode 6 \
- save opcode 7
diff --git a/compiler/tools/fpp-from-xml/test/component/parameters.xml b/compiler/tools/fpp-from-xml/test/component/parameters.xml
deleted file mode 100644
index e0072d828..000000000
--- a/compiler/tools/fpp-from-xml/test/component/parameters.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- A test parameter
-
-
-
-
- A test parameter
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/component/run b/compiler/tools/fpp-from-xml/test/component/run
deleted file mode 100755
index bf6f79f51..000000000
--- a/compiler/tools/fpp-from-xml/test/component/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/component/special_ports.ref.txt b/compiler/tools/fpp-from-xml/test/component/special_ports.ref.txt
deleted file mode 100644
index 10b79c49e..000000000
--- a/compiler/tools/fpp-from-xml/test/component/special_ports.ref.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-module M {
-
- passive component SpecialPorts {
-
- command recv port cmdIn
-
- command reg port cmdRegOut
-
- command resp port cmdResponseOut
-
- event port eventOut
-
- param get port paramGetOut
-
- param set port paramSetOut
-
- text event port textEventOut
-
- telemetry port tlmOut
-
- }
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/component/special_ports.xml b/compiler/tools/fpp-from-xml/test/component/special_ports.xml
deleted file mode 100644
index 3464d6a9d..000000000
--- a/compiler/tools/fpp-from-xml/test/component/special_ports.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- CmdPortAi.xml
- CmdRegPortAi.xml
- CmdResponsePortAi.xml
- LogPortAi.xml
- LogTextPortAi.xml
- PrmGetPortAi.xml
- PrmSetPortAi.xml
- TlmPortAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/component/telemetry.ref.txt b/compiler/tools/fpp-from-xml/test/component/telemetry.ref.txt
deleted file mode 100644
index bba29c1a9..000000000
--- a/compiler/tools/fpp-from-xml/test/component/telemetry.ref.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-@ Channel C1
-telemetry C1: U32 id 0x0 update always
-
-telemetry C2: U32 id 0x1 update always
-
-telemetry C3: U32 id 0x2 update on change
-
-telemetry C4: string size 80 id 0x3 update always
-
-telemetry C5: I32 id 0x4 update always \
- low {
- red -3
- orange -2
- yellow -1
- } \
- high {
- red 3
- orange 2
- yellow 1
- }
-
-enum E {
- A = 0
- B = 1
- C = 2
-}
-
-telemetry C6: E id 0x5 update always
diff --git a/compiler/tools/fpp-from-xml/test/component/telemetry.xml b/compiler/tools/fpp-from-xml/test/component/telemetry.xml
deleted file mode 100644
index 63f138f9f..000000000
--- a/compiler/tools/fpp-from-xml/test/component/telemetry.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
- Channel C1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.ref.txt b/compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.ref.txt
deleted file mode 100644
index 6f63140c9..000000000
--- a/compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.ref.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-fpp-from-xml
-file: [ local path prefix ]/tools/fpp-from-xml/test/component/telemetry_bad_limit.xml
-error: non-numeric type in limit for channel C
diff --git a/compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.xml b/compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.xml
deleted file mode 100644
index 88f5681f5..000000000
--- a/compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/component/tests.sh b/compiler/tools/fpp-from-xml/test/component/tests.sh
deleted file mode 100644
index dd0cdd70f..000000000
--- a/compiler/tools/fpp-from-xml/test/component/tests.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-tests="
-commands
-events
-general_ports_active
-general_ports_passive
-import_dictionary
-internal_ports
-parameters
-special_ports
-telemetry
-telemetry_bad_limit
-"
diff --git a/compiler/tools/fpp-from-xml/test/component/update-ref b/compiler/tools/fpp-from-xml/test/component/update-ref
deleted file mode 100755
index c905604d4..000000000
--- a/compiler/tools/fpp-from-xml/test/component/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/enum/.gitignore b/compiler/tools/fpp-from-xml/test/enum/.gitignore
deleted file mode 100644
index 68e20f132..000000000
--- a/compiler/tools/fpp-from-xml/test/enum/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*Ai.xml
-*Ac.hpp
-*Ac.cpp
diff --git a/compiler/tools/fpp-from-xml/test/enum/check-fpp b/compiler/tools/fpp-from-xml/test/enum/check-fpp
deleted file mode 100755
index 4246bc6a9..000000000
--- a/compiler/tools/fpp-from-xml/test/enum/check-fpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh -e
-
-fpp_syntax=../../../../bin/fpp-syntax
-
-files=`find . -name '*.ref.txt' | egrep -v 'error|missing'`
-for file in $files
-do
- echo "checking $file"
- $fpp_syntax < $file
-done
diff --git a/compiler/tools/fpp-from-xml/test/enum/clean b/compiler/tools/fpp-from-xml/test/enum/clean
deleted file mode 100755
index b042fe2f0..000000000
--- a/compiler/tools/fpp-from-xml/test/enum/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-. ../../../../scripts/utils.sh
-
-clean
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.ref.txt b/compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.ref.txt
deleted file mode 100644
index b5105928a..000000000
--- a/compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.ref.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-module M {
-
- enum $enum {
- X = 0
- Y = 1
- Z = 2
- }
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.xml b/compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.xml
deleted file mode 100644
index 12401e7f1..000000000
--- a/compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_missing_name.ref.txt b/compiler/tools/fpp-from-xml/test/enum/enum_missing_name.ref.txt
deleted file mode 100644
index f1e82792e..000000000
--- a/compiler/tools/fpp-from-xml/test/enum/enum_missing_name.ref.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-fpp-from-xml
-file: [ local path prefix ]/tools/fpp-from-xml/test/enum/enum_missing_name.xml
-error: missing attribute name for node
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_missing_name.xml b/compiler/tools/fpp-from-xml/test/enum/enum_missing_name.xml
deleted file mode 100644
index 124eea833..000000000
--- a/compiler/tools/fpp-from-xml/test/enum/enum_missing_name.xml
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_ok.fpp b/compiler/tools/fpp-from-xml/test/enum/enum_ok.fpp
deleted file mode 100644
index 2b2f71c56..000000000
--- a/compiler/tools/fpp-from-xml/test/enum/enum_ok.fpp
+++ /dev/null
@@ -1,16 +0,0 @@
-module A {
-
- module B {
-
- @ Annotation line 1
- @ Annotation line 2
- enum OK {
- X @< Annotation line 1
- @< Annotation line 2
- Y
- Z
- }
-
- }
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_ok.ref.txt b/compiler/tools/fpp-from-xml/test/enum/enum_ok.ref.txt
deleted file mode 100644
index 3a66a00bc..000000000
--- a/compiler/tools/fpp-from-xml/test/enum/enum_ok.ref.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-module A {
-
- module B {
-
- enum OK {
- X = 0 @< Annotation line 1 Annotation line 2
- Y = 1
- Z = 2
- }
-
- }
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_ok.xml b/compiler/tools/fpp-from-xml/test/enum/enum_ok.xml
deleted file mode 100644
index 72931dfb5..000000000
--- a/compiler/tools/fpp-from-xml/test/enum/enum_ok.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/enum/run b/compiler/tools/fpp-from-xml/test/enum/run
deleted file mode 100755
index bf6f79f51..000000000
--- a/compiler/tools/fpp-from-xml/test/enum/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/enum/tests.sh b/compiler/tools/fpp-from-xml/test/enum/tests.sh
deleted file mode 100644
index c74c43ec5..000000000
--- a/compiler/tools/fpp-from-xml/test/enum/tests.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-tests="
-enum_kwd_name
-enum_missing_name
-enum_ok
-"
diff --git a/compiler/tools/fpp-from-xml/test/enum/update-ref b/compiler/tools/fpp-from-xml/test/enum/update-ref
deleted file mode 100755
index c905604d4..000000000
--- a/compiler/tools/fpp-from-xml/test/enum/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/port/check-fpp b/compiler/tools/fpp-from-xml/test/port/check-fpp
deleted file mode 100755
index 4246bc6a9..000000000
--- a/compiler/tools/fpp-from-xml/test/port/check-fpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh -e
-
-fpp_syntax=../../../../bin/fpp-syntax
-
-files=`find . -name '*.ref.txt' | egrep -v 'error|missing'`
-for file in $files
-do
- echo "checking $file"
- $fpp_syntax < $file
-done
diff --git a/compiler/tools/fpp-from-xml/test/port/clean b/compiler/tools/fpp-from-xml/test/port/clean
deleted file mode 100755
index b042fe2f0..000000000
--- a/compiler/tools/fpp-from-xml/test/port/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-. ../../../../scripts/utils.sh
-
-clean
diff --git a/compiler/tools/fpp-from-xml/test/port/port_cmd_resp.ref.txt b/compiler/tools/fpp-from-xml/test/port/port_cmd_resp.ref.txt
deleted file mode 100644
index 5dd57d94b..000000000
--- a/compiler/tools/fpp-from-xml/test/port/port_cmd_resp.ref.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-module Fw {
-
- enum CommandResponse {
- COMMAND_OK = 0 @< Command successfully executed
- COMMAND_INVALID_OPCODE = 1 @< Invalid opcode dispatched
- COMMAND_VALIDATION_ERROR = 2 @< Command failed validation
- COMMAND_FORMAT_ERROR = 3 @< Command failed to deserialize
- COMMAND_EXECUTION_ERROR = 4 @< Command had execution error
- COMMAND_BUSY = 5 @< Component busy
- }
-
- @ Command port
- port CmdResponse(
- opCode: FwOpcodeType @< Command Op Code
- cmdSeq: U32 @< Command Sequence
- response: CommandResponse @< The command response argument
- )
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/port/port_cmd_resp.xml b/compiler/tools/fpp-from-xml/test/port/port_cmd_resp.xml
deleted file mode 100644
index 1f0076d38..000000000
--- a/compiler/tools/fpp-from-xml/test/port/port_cmd_resp.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
- Command port
-
-
-
- Command Op Code
-
-
- Command Sequence
-
-
-
-
-
-
-
-
-
-
- The command response argument
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/port/port_ok.ref.txt b/compiler/tools/fpp-from-xml/test/port/port_ok.ref.txt
deleted file mode 100644
index a3df1772a..000000000
--- a/compiler/tools/fpp-from-xml/test/port/port_ok.ref.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-module A {
-
- enum Return {
- X = 0
- Y = 1
- Z = 2
- }
-
- @ Top-level comment line 1
- @ Top-level comment line 2
- port OK(
- a: U32 @< Argument a comment line 1
- @< Argument a comment line 2
- ref b: string size 40 @< Argument b comment line 1
- @< Argument b comment line 2
- ) -> Return
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/port/port_ok.xml b/compiler/tools/fpp-from-xml/test/port/port_ok.xml
deleted file mode 100644
index cfd43b269..000000000
--- a/compiler/tools/fpp-from-xml/test/port/port_ok.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
- Top-level comment line 1
- Top-level comment line 2
-
-
-
-
- Argument a comment line 1
- Argument a comment line 2
-
-
-
-
- Argument b comment line 1
- Argument b comment line 2
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/port/run b/compiler/tools/fpp-from-xml/test/port/run
deleted file mode 100755
index bf6f79f51..000000000
--- a/compiler/tools/fpp-from-xml/test/port/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/port/tests.sh b/compiler/tools/fpp-from-xml/test/port/tests.sh
deleted file mode 100644
index a0ff58b9e..000000000
--- a/compiler/tools/fpp-from-xml/test/port/tests.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-tests="
-port_cmd_resp
-port_ok
-"
diff --git a/compiler/tools/fpp-from-xml/test/port/update-ref b/compiler/tools/fpp-from-xml/test/port/update-ref
deleted file mode 100755
index c905604d4..000000000
--- a/compiler/tools/fpp-from-xml/test/port/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/scripts/run.sh b/compiler/tools/fpp-from-xml/test/scripts/run.sh
deleted file mode 100644
index 34341ac09..000000000
--- a/compiler/tools/fpp-from-xml/test/scripts/run.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh
-
-export LOCAL_PATH_PREFIX=`cd $COMPILER_ROOT; echo $PWD`
-
-. $COMPILER_ROOT/scripts/test-utils.sh
-
-fpp_from_xml=$COMPILER_ROOT/bin/fpp-from-xml
-
-compare()
-{
- outfile=$1
- diff -u $outfile.ref.txt $outfile.out.txt > $outfile.diff.txt 2>&1
-}
-
-run_test()
-{
- args=$1
- infile=$2
- if test -n "$3"
- then
- outfile=$3
- else
- outfile=$infile
- fi
- $fpp_from_xml $args $infile.xml 2>&1 | remove_path_prefix > $outfile.out.txt
- compare $outfile
-}
-
-. ./tests.sh
-
-# Default tests
-for t in $tests
-do
- echo "
-$t()
-{
- run_test '' $t
-}"
-done > default-tests.sh
-. ./default-tests.sh
-
-if test -f run.sh
-then
- . ./run.sh
-fi
-
-run_suite $tests
diff --git a/compiler/tools/fpp-from-xml/test/scripts/update-ref.sh b/compiler/tools/fpp-from-xml/test/scripts/update-ref.sh
deleted file mode 100644
index f398625ce..000000000
--- a/compiler/tools/fpp-from-xml/test/scripts/update-ref.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh
-
-export LOCAL_PATH_PREFIX=`cd $COMPILER_ROOT; echo $PWD`
-
-. $COMPILER_ROOT/scripts/test-utils.sh
-
-fpp_from_xml=$COMPILER_ROOT/bin/fpp-from-xml
-
-update()
-{
- args=$1
- infile=$2
- if test -n "$3"
- then
- outfile=$3
- else
- outfile=$infile
- fi
- $fpp_from_xml $args $infile.xml 2>&1 | remove_path_prefix > $outfile.ref.txt
-}
-
-for file in `find . -name '*.ref.txt'`
-do
- rm $file
-done
-
-. ./tests.sh
-
-# Default update ref
-for t in $tests
-do
- echo "
-$t()
-{
- update '' $t
-}"
-done > default-update-ref.sh
-. ./default-update-ref.sh
-
-if test -f update-ref.sh
-then
- . ./update-ref.sh
-fi
-
-for t in $tests
-do
- echo "updating ref output for $t"
- $t
-done
diff --git a/compiler/tools/fpp-from-xml/test/struct/check-fpp b/compiler/tools/fpp-from-xml/test/struct/check-fpp
deleted file mode 100755
index 4246bc6a9..000000000
--- a/compiler/tools/fpp-from-xml/test/struct/check-fpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh -e
-
-fpp_syntax=../../../../bin/fpp-syntax
-
-files=`find . -name '*.ref.txt' | egrep -v 'error|missing'`
-for file in $files
-do
- echo "checking $file"
- $fpp_syntax < $file
-done
diff --git a/compiler/tools/fpp-from-xml/test/struct/clean b/compiler/tools/fpp-from-xml/test/struct/clean
deleted file mode 100755
index b042fe2f0..000000000
--- a/compiler/tools/fpp-from-xml/test/struct/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-. ../../../../scripts/utils.sh
-
-clean
diff --git a/compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.ref.txt b/compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.ref.txt
deleted file mode 100644
index 2a44a0cb0..000000000
--- a/compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.ref.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-module A {
-
- module B {
-
- enum E {
- X = 0
- Y = 1
- Z = 2
- }
-
- @ Top-level comment, line 1
- @ Top-level comment, line 2
- struct StructOK {
- m: [3] E format "the value is {}"
- }
-
- }
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.xml b/compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.xml
deleted file mode 100644
index c1e8081e4..000000000
--- a/compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- Top-level comment, line 1
- Top-level comment, line 2
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/struct/run b/compiler/tools/fpp-from-xml/test/struct/run
deleted file mode 100755
index bf6f79f51..000000000
--- a/compiler/tools/fpp-from-xml/test/struct/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/struct/struct_format.ref.txt b/compiler/tools/fpp-from-xml/test/struct/struct_format.ref.txt
deleted file mode 100644
index 419fcf70e..000000000
--- a/compiler/tools/fpp-from-xml/test/struct/struct_format.ref.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-module A {
-
- module B {
-
- struct StructFormat {
- m1: I32
- @ FPP from XML: could not translate format string "%q"
- m2: bool
- m3: string size 23
- m4: [10] F32 format "{.3e}"
- m5: [10] F32 format "{.3f}"
- m6: [10] F32 format "{.3g}"
- }
-
- }
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/struct/struct_format.xml b/compiler/tools/fpp-from-xml/test/struct/struct_format.xml
deleted file mode 100644
index 34cbab2f7..000000000
--- a/compiler/tools/fpp-from-xml/test/struct/struct_format.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.ref.txt b/compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.ref.txt
deleted file mode 100644
index 717ea98d1..000000000
--- a/compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.ref.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-fpp-from-xml
-file: [ local path prefix ]/tools/fpp-from-xml/test/struct/struct_missing_member_name.xml
-error: missing attribute name for node
diff --git a/compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.xml b/compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.xml
deleted file mode 100644
index 2c4ecdde5..000000000
--- a/compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/struct/struct_ok.ref.txt b/compiler/tools/fpp-from-xml/test/struct/struct_ok.ref.txt
deleted file mode 100644
index 73323b05b..000000000
--- a/compiler/tools/fpp-from-xml/test/struct/struct_ok.ref.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-module A {
-
- module B {
-
- enum E {
- X = 0
- Y = 3 @< Inline comment
- Z = 4
- }
-
- @ Top-level comment, line 1
- @ Top-level comment, line 2
- struct StructOK {
- m1: C.D @< Inline comment
- m2: I32
- m3: bool
- m4: string size 23
- m5: E
- m6: [10] U32
- }
-
- }
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/struct/struct_ok.xml b/compiler/tools/fpp-from-xml/test/struct/struct_ok.xml
deleted file mode 100644
index 5386fd58b..000000000
--- a/compiler/tools/fpp-from-xml/test/struct/struct_ok.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
- Top-level comment, line 1
- Top-level comment, line 2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/struct/tests.sh b/compiler/tools/fpp-from-xml/test/struct/tests.sh
deleted file mode 100644
index 9db0b7868..000000000
--- a/compiler/tools/fpp-from-xml/test/struct/tests.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-tests="
-member_array_of_enum
-struct_format
-struct_missing_member_name
-struct_ok
-"
diff --git a/compiler/tools/fpp-from-xml/test/struct/update-ref b/compiler/tools/fpp-from-xml/test/struct/update-ref
deleted file mode 100755
index c905604d4..000000000
--- a/compiler/tools/fpp-from-xml/test/struct/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/syntax/check-fpp b/compiler/tools/fpp-from-xml/test/syntax/check-fpp
deleted file mode 100755
index 4246bc6a9..000000000
--- a/compiler/tools/fpp-from-xml/test/syntax/check-fpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh -e
-
-fpp_syntax=../../../../bin/fpp-syntax
-
-files=`find . -name '*.ref.txt' | egrep -v 'error|missing'`
-for file in $files
-do
- echo "checking $file"
- $fpp_syntax < $file
-done
diff --git a/compiler/tools/fpp-from-xml/test/syntax/clean b/compiler/tools/fpp-from-xml/test/syntax/clean
deleted file mode 100755
index b042fe2f0..000000000
--- a/compiler/tools/fpp-from-xml/test/syntax/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-. ../../../../scripts/utils.sh
-
-clean
diff --git a/compiler/tools/fpp-from-xml/test/syntax/parse_error.ref.txt b/compiler/tools/fpp-from-xml/test/syntax/parse_error.ref.txt
deleted file mode 100644
index 0b65eb42c..000000000
--- a/compiler/tools/fpp-from-xml/test/syntax/parse_error.ref.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-fpp-from-xml
-file: [ local path prefix ]/tools/fpp-from-xml/test/syntax/parse_error.xml
-error: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
diff --git a/compiler/tools/fpp-from-xml/test/syntax/parse_error.xml b/compiler/tools/fpp-from-xml/test/syntax/parse_error.xml
deleted file mode 100644
index e61e68ba5..000000000
--- a/compiler/tools/fpp-from-xml/test/syntax/parse_error.xml
+++ /dev/null
@@ -1 +0,0 @@
-This file should not parse!
diff --git a/compiler/tools/fpp-from-xml/test/syntax/run b/compiler/tools/fpp-from-xml/test/syntax/run
deleted file mode 100755
index bf6f79f51..000000000
--- a/compiler/tools/fpp-from-xml/test/syntax/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/syntax/tests.sh b/compiler/tools/fpp-from-xml/test/syntax/tests.sh
deleted file mode 100644
index 40969f15d..000000000
--- a/compiler/tools/fpp-from-xml/test/syntax/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-parse_error
-"
diff --git a/compiler/tools/fpp-from-xml/test/syntax/update-ref b/compiler/tools/fpp-from-xml/test/syntax/update-ref
deleted file mode 100755
index c905604d4..000000000
--- a/compiler/tools/fpp-from-xml/test/syntax/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/test b/compiler/tools/fpp-from-xml/test/test
deleted file mode 100755
index 6df8509b5..000000000
--- a/compiler/tools/fpp-from-xml/test/test
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../..
-cd ..
-$COMPILER_ROOT/scripts/test
-mv num_failed.txt test-output.txt test
diff --git a/compiler/tools/fpp-from-xml/test/top/check-fpp b/compiler/tools/fpp-from-xml/test/top/check-fpp
deleted file mode 100755
index b1fe2532c..000000000
--- a/compiler/tools/fpp-from-xml/test/top/check-fpp
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh -e
-
-fpp_syntax=../../../../bin/fpp-syntax
-
-files=`find . -name '*.ref.txt' | egrep -v 'error|missing'`
-for file in $files
-do
- echo "checking $file"
- if echo $file | grep -q "fprime_ref_packets\.ref\.txt$"
- then
- $fpp_syntax -i < fprime_ref_packets.fpp
- else
- $fpp_syntax < $file
- fi
-done
diff --git a/compiler/tools/fpp-from-xml/test/top/clean b/compiler/tools/fpp-from-xml/test/top/clean
deleted file mode 100755
index b042fe2f0..000000000
--- a/compiler/tools/fpp-from-xml/test/top/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-. ../../../../scripts/utils.sh
-
-clean
diff --git a/compiler/tools/fpp-from-xml/test/top/fprime_ref.ref.txt b/compiler/tools/fpp-from-xml/test/top/fprime_ref.ref.txt
deleted file mode 100644
index 03c3ea5ef..000000000
--- a/compiler/tools/fpp-from-xml/test/top/fprime_ref.ref.txt
+++ /dev/null
@@ -1,321 +0,0 @@
-instance cmdDisp: Svc.CommandDispatcher base id 121
-
-instance chanTlm: Svc.TlmChan base id 61
-
-instance prmDb: Svc.PrmDb base id 141
-
-instance cmdSeq: Svc.CmdSequencer base id 541
-
-instance eventLogger: Svc.ActiveLogger base id 421
-
-instance $health: Svc.Health base id 361
-
-instance fileUplink: Svc.FileUplink base id 261
-
-instance fileUplinkBufferManager: Svc.BufferManager base id 301
-
-instance fileDownlink: Svc.FileDownlink base id 501
-
-instance fileManager: Svc.FileManager base id 601
-
-instance textLogger: Svc.PassiveTextLogger base id 521
-
-instance fatalAdapter: Svc.AssertFatalAdapter base id 341
-
-instance fatalHandler: Svc.FatalHandler base id 1
-
-instance linuxTime: Svc.Time base id 441
-
-instance staticMemory: Svc.StaticMemory base id 661
-
-instance downlink: Svc.Framer base id 681
-
-instance uplink: Svc.Deframer base id 701
-
-instance comm: Drv.ByteStreamDriverModel base id 621
-
-instance rateGroupDriverComp: Svc.RateGroupDriver base id 461
-
-instance rateGroup1Comp: Svc.ActiveRateGroup base id 21
-
-instance rateGroup2Comp: Svc.ActiveRateGroup base id 161
-
-instance rateGroup3Comp: Svc.ActiveRateGroup base id 241
-
-instance sendBuffComp: Ref.SendBuff base id 81
-
-instance recvBuffComp: Ref.RecvBuff base id 101
-
-instance pingRcvr: Ref.PingReceiver base id 41
-
-instance SG1: Ref.SignalGen base id 181
-
-instance SG3: Ref.SignalGen base id 201
-
-instance SG2: Ref.SignalGen base id 221
-
-instance SG5: Ref.SignalGen base id 281
-
-instance SG4: Ref.SignalGen base id 321
-
-instance blockDrv: Drv.BlockDriver base id 481
-
-topology Ref {
-
- instance cmdDisp
-
- instance chanTlm
-
- instance prmDb
-
- instance cmdSeq
-
- instance eventLogger
-
- instance $health
-
- instance fileUplink
-
- instance fileUplinkBufferManager
-
- instance fileDownlink
-
- instance fileManager
-
- instance textLogger
-
- instance fatalAdapter
-
- instance fatalHandler
-
- instance linuxTime
-
- instance staticMemory
-
- instance downlink
-
- instance uplink
-
- instance comm
-
- instance rateGroupDriverComp
-
- instance rateGroup1Comp
-
- instance rateGroup2Comp
-
- instance rateGroup3Comp
-
- instance sendBuffComp
-
- instance recvBuffComp
-
- instance pingRcvr
-
- instance SG1
-
- instance SG3
-
- instance SG2
-
- instance SG5
-
- instance SG4
-
- instance blockDrv
-
- connections XML {
- comm.allocate[0] -> staticMemory.bufferAllocate[0]
- comm.$recv[0] -> uplink.framedIn[0]
- uplink.framedDeallocate[0] -> staticMemory.bufferDeallocate[0]
- uplink.bufferAllocate[0] -> fileUplinkBufferManager.bufferGetCallee[0]
- uplink.comOut[0] -> cmdDisp.seqCmdBuff[0]
- uplink.bufferOut[0] -> fileUplink.bufferSendIn[0]
- uplink.bufferDeallocate[0] -> fileUplinkBufferManager.bufferSendIn[0]
- fileUplink.bufferSendOut[0] -> fileUplinkBufferManager.bufferSendIn[0]
- downlink.framedAllocate[0] -> staticMemory.bufferAllocate[1]
- downlink.framedOut[0] -> comm.$send[0]
- comm.deallocate[0] -> staticMemory.bufferDeallocate[1]
- eventLogger.PktSend[0] -> downlink.comIn[0]
- chanTlm.PktSend[0] -> downlink.comIn[0]
- fileDownlink.bufferSendOut[0] -> downlink.bufferIn[0]
- downlink.bufferDeallocate[0] -> fileDownlink.bufferReturn[0]
- eventLogger.CmdReg[0] -> cmdDisp.compCmdReg[0]
- cmdDisp.CmdReg[0] -> cmdDisp.compCmdReg[1]
- $health.CmdReg[0] -> cmdDisp.compCmdReg[2]
- prmDb.CmdReg[0] -> cmdDisp.compCmdReg[3]
- cmdSeq.cmdRegOut[0] -> cmdDisp.compCmdReg[4]
- fileDownlink.cmdRegOut[0] -> cmdDisp.compCmdReg[5]
- sendBuffComp.CmdReg[0] -> cmdDisp.compCmdReg[6]
- recvBuffComp.CmdReg[0] -> cmdDisp.compCmdReg[7]
- SG1.cmdRegOut[0] -> cmdDisp.compCmdReg[8]
- SG2.cmdRegOut[0] -> cmdDisp.compCmdReg[9]
- SG3.cmdRegOut[0] -> cmdDisp.compCmdReg[10]
- SG4.cmdRegOut[0] -> cmdDisp.compCmdReg[11]
- SG5.cmdRegOut[0] -> cmdDisp.compCmdReg[12]
- pingRcvr.CmdReg[0] -> cmdDisp.compCmdReg[13]
- fileManager.cmdRegOut[0] -> cmdDisp.compCmdReg[14]
- cmdDisp.compCmdSend[0] -> eventLogger.CmdDisp[0]
- cmdDisp.compCmdSend[1] -> cmdDisp.CmdDisp[0]
- cmdDisp.compCmdSend[2] -> $health.CmdDisp[0]
- cmdDisp.compCmdSend[3] -> prmDb.CmdDisp[0]
- cmdDisp.compCmdSend[4] -> cmdSeq.cmdIn[0]
- cmdDisp.compCmdSend[5] -> fileDownlink.cmdIn[0]
- cmdDisp.compCmdSend[6] -> sendBuffComp.CmdDisp[0]
- cmdDisp.compCmdSend[7] -> recvBuffComp.CmdDisp[0]
- cmdDisp.compCmdSend[8] -> SG1.cmdIn[0]
- cmdDisp.compCmdSend[9] -> SG2.cmdIn[0]
- cmdDisp.compCmdSend[10] -> SG3.cmdIn[0]
- cmdDisp.compCmdSend[11] -> SG4.cmdIn[0]
- cmdDisp.compCmdSend[12] -> SG5.cmdIn[0]
- cmdDisp.compCmdSend[13] -> pingRcvr.CmdDisp[0]
- cmdDisp.compCmdSend[14] -> fileManager.cmdIn[0]
- eventLogger.CmdStatus[0] -> cmdDisp.compCmdStat[0]
- cmdSeq.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
- prmDb.CmdStatus[0] -> cmdDisp.compCmdStat[0]
- cmdDisp.CmdStatus[0] -> cmdDisp.compCmdStat[0]
- $health.CmdStatus[0] -> cmdDisp.compCmdStat[0]
- fileDownlink.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
- fileManager.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
- pingRcvr.CmdStatus[0] -> cmdDisp.compCmdStat[0]
- recvBuffComp.CmdStatus[0] -> cmdDisp.compCmdStat[0]
- sendBuffComp.CmdStatus[0] -> cmdDisp.compCmdStat[0]
- SG1.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
- SG2.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
- SG3.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
- SG4.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
- SG5.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
- cmdDisp.seqCmdStatus[1] -> cmdSeq.cmdResponseIn[0]
- cmdSeq.comCmdOut[0] -> cmdDisp.seqCmdBuff[1]
- prmDb.Log[0] -> eventLogger.LogRecv[0]
- fileUplink.eventOut[0] -> eventLogger.LogRecv[0]
- eventLogger.Log[0] -> eventLogger.LogRecv[0]
- fileUplinkBufferManager.eventOut[0] -> eventLogger.LogRecv[0]
- cmdDisp.Log[0] -> eventLogger.LogRecv[0]
- cmdSeq.logOut[0] -> eventLogger.LogRecv[0]
- fatalAdapter.Log[0] -> eventLogger.LogRecv[0]
- $health.Log[0] -> eventLogger.LogRecv[0]
- fileDownlink.eventOut[0] -> eventLogger.LogRecv[0]
- fileManager.eventOut[0] -> eventLogger.LogRecv[0]
- rateGroup1Comp.Log[0] -> eventLogger.LogRecv[0]
- rateGroup2Comp.Log[0] -> eventLogger.LogRecv[0]
- rateGroup3Comp.Log[0] -> eventLogger.LogRecv[0]
- sendBuffComp.Log[0] -> eventLogger.LogRecv[0]
- recvBuffComp.Log[0] -> eventLogger.LogRecv[0]
- SG1.logOut[0] -> eventLogger.LogRecv[0]
- SG2.logOut[0] -> eventLogger.LogRecv[0]
- SG3.logOut[0] -> eventLogger.LogRecv[0]
- SG4.logOut[0] -> eventLogger.LogRecv[0]
- SG5.logOut[0] -> eventLogger.LogRecv[0]
- pingRcvr.Log[0] -> eventLogger.LogRecv[0]
- cmdSeq.LogText[0] -> textLogger.TextLogger[0]
- eventLogger.LogText[0] -> textLogger.TextLogger[0]
- $health.LogText[0] -> textLogger.TextLogger[0]
- fatalAdapter.LogText[0] -> textLogger.TextLogger[0]
- prmDb.LogText[0] -> textLogger.TextLogger[0]
- cmdDisp.LogText[0] -> textLogger.TextLogger[0]
- rateGroup1Comp.LogText[0] -> textLogger.TextLogger[0]
- rateGroup2Comp.LogText[0] -> textLogger.TextLogger[0]
- rateGroup3Comp.LogText[0] -> textLogger.TextLogger[0]
- pingRcvr.LogText[0] -> textLogger.TextLogger[0]
- SG1.logTextOut[0] -> textLogger.TextLogger[0]
- SG2.logTextOut[0] -> textLogger.TextLogger[0]
- SG3.logTextOut[0] -> textLogger.TextLogger[0]
- SG4.logTextOut[0] -> textLogger.TextLogger[0]
- SG5.logTextOut[0] -> textLogger.TextLogger[0]
- sendBuffComp.LogText[0] -> textLogger.TextLogger[0]
- recvBuffComp.LogText[0] -> textLogger.TextLogger[0]
- fileDownlink.textEventOut[0] -> textLogger.TextLogger[0]
- fileDownlink.tlmOut[0] -> chanTlm.TlmRecv[0]
- fileUplinkBufferManager.tlmOut[0] -> chanTlm.TlmRecv[0]
- fileUplink.tlmOut[0] -> chanTlm.TlmRecv[0]
- fileManager.tlmOut[0] -> chanTlm.TlmRecv[0]
- cmdSeq.tlmOut[0] -> chanTlm.TlmRecv[0]
- cmdDisp.Tlm[0] -> chanTlm.TlmRecv[0]
- rateGroup1Comp.Tlm[0] -> chanTlm.TlmRecv[0]
- rateGroup2Comp.Tlm[0] -> chanTlm.TlmRecv[0]
- rateGroup3Comp.Tlm[0] -> chanTlm.TlmRecv[0]
- $health.Tlm[0] -> chanTlm.TlmRecv[0]
- SG1.tlmOut[0] -> chanTlm.TlmRecv[0]
- SG2.tlmOut[0] -> chanTlm.TlmRecv[0]
- SG3.tlmOut[0] -> chanTlm.TlmRecv[0]
- SG4.tlmOut[0] -> chanTlm.TlmRecv[0]
- SG5.tlmOut[0] -> chanTlm.TlmRecv[0]
- pingRcvr.Tlm[0] -> chanTlm.TlmRecv[0]
- sendBuffComp.Tlm[0] -> chanTlm.TlmRecv[0]
- recvBuffComp.Tlm[0] -> chanTlm.TlmRecv[0]
- blockDrv.Tlm[0] -> chanTlm.TlmRecv[0]
- recvBuffComp.ParamGet[0] -> prmDb.getPrm[0]
- sendBuffComp.ParamGet[0] -> prmDb.getPrm[0]
- recvBuffComp.ParamSet[0] -> prmDb.setPrm[0]
- sendBuffComp.ParamSet[0] -> prmDb.setPrm[0]
- prmDb.Time[0] -> linuxTime.timeGetPort[0]
- eventLogger.Time[0] -> linuxTime.timeGetPort[0]
- rateGroup1Comp.Time[0] -> linuxTime.timeGetPort[0]
- rateGroup2Comp.Time[0] -> linuxTime.timeGetPort[0]
- rateGroup3Comp.Time[0] -> linuxTime.timeGetPort[0]
- cmdSeq.timeCaller[0] -> linuxTime.timeGetPort[0]
- $health.Time[0] -> linuxTime.timeGetPort[0]
- fileUplinkBufferManager.timeCaller[0] -> linuxTime.timeGetPort[0]
- cmdDisp.Time[0] -> linuxTime.timeGetPort[0]
- fileUplink.timeCaller[0] -> linuxTime.timeGetPort[0]
- fileDownlink.timeCaller[0] -> linuxTime.timeGetPort[0]
- fileManager.timeCaller[0] -> linuxTime.timeGetPort[0]
- fatalAdapter.Time[0] -> linuxTime.timeGetPort[0]
- recvBuffComp.Time[0] -> linuxTime.timeGetPort[0]
- SG1.timeCaller[0] -> linuxTime.timeGetPort[0]
- SG2.timeCaller[0] -> linuxTime.timeGetPort[0]
- SG3.timeCaller[0] -> linuxTime.timeGetPort[0]
- SG4.timeCaller[0] -> linuxTime.timeGetPort[0]
- SG5.timeCaller[0] -> linuxTime.timeGetPort[0]
- sendBuffComp.Time[0] -> linuxTime.timeGetPort[0]
- pingRcvr.Time[0] -> linuxTime.timeGetPort[0]
- blockDrv.Time[0] -> linuxTime.timeGetPort[0]
- blockDrv.CycleOut[0] -> rateGroupDriverComp.CycleIn[0]
- rateGroupDriverComp.CycleOut[0] -> rateGroup1Comp.CycleIn[0]
- rateGroup1Comp.RateGroupMemberOut[0] -> SG1.schedIn[0]
- rateGroup1Comp.RateGroupMemberOut[1] -> SG2.schedIn[0]
- rateGroup1Comp.RateGroupMemberOut[2] -> chanTlm.Run[0]
- rateGroup1Comp.RateGroupMemberOut[3] -> fileDownlink.Run[0]
- rateGroupDriverComp.CycleOut[1] -> rateGroup2Comp.CycleIn[0]
- rateGroup2Comp.RateGroupMemberOut[0] -> cmdSeq.schedIn[0]
- rateGroup2Comp.RateGroupMemberOut[1] -> sendBuffComp.SchedIn[0]
- rateGroup2Comp.RateGroupMemberOut[2] -> SG3.schedIn[0]
- rateGroup2Comp.RateGroupMemberOut[3] -> SG4.schedIn[0]
- rateGroupDriverComp.CycleOut[2] -> rateGroup3Comp.CycleIn[0]
- rateGroup3Comp.RateGroupMemberOut[0] -> $health.Run[0]
- rateGroup3Comp.RateGroupMemberOut[1] -> SG5.schedIn[0]
- rateGroup3Comp.RateGroupMemberOut[2] -> blockDrv.Sched[0]
- rateGroup3Comp.RateGroupMemberOut[3] -> fileUplinkBufferManager.schedIn[0]
- rateGroup1Comp.PingOut[0] -> $health.PingReturn[0]
- $health.PingSend[0] -> rateGroup1Comp.PingIn[0]
- $health.PingSend[1] -> rateGroup2Comp.PingIn[0]
- rateGroup2Comp.PingOut[0] -> $health.PingReturn[1]
- $health.PingSend[2] -> rateGroup3Comp.PingIn[0]
- rateGroup3Comp.PingOut[0] -> $health.PingReturn[2]
- $health.PingSend[3] -> cmdDisp.pingIn[0]
- cmdDisp.pingOut[0] -> $health.PingReturn[3]
- $health.PingSend[4] -> eventLogger.pingIn[0]
- eventLogger.pingOut[0] -> $health.PingReturn[4]
- $health.PingSend[5] -> cmdSeq.pingIn[0]
- cmdSeq.pingOut[0] -> $health.PingReturn[5]
- $health.PingSend[6] -> chanTlm.pingIn[0]
- chanTlm.pingOut[0] -> $health.PingReturn[6]
- $health.PingSend[7] -> prmDb.pingIn[0]
- prmDb.pingOut[0] -> $health.PingReturn[7]
- $health.PingSend[8] -> fileUplink.pingIn[0]
- fileUplink.pingOut[0] -> $health.PingReturn[8]
- $health.PingSend[9] -> fileDownlink.pingIn[0]
- fileDownlink.pingOut[0] -> $health.PingReturn[9]
- $health.PingSend[10] -> pingRcvr.PingIn[0]
- pingRcvr.PingOut[0] -> $health.PingReturn[10]
- $health.PingSend[11] -> blockDrv.PingIn[0]
- blockDrv.PingOut[0] -> $health.PingReturn[11]
- $health.PingSend[12] -> fileManager.pingIn[0]
- fileManager.pingOut[0] -> $health.PingReturn[12]
- eventLogger.FatalAnnounce[0] -> fatalHandler.FatalReceive[0]
- sendBuffComp.Data[0] -> blockDrv.BufferIn[0]
- blockDrv.BufferOut[0] -> recvBuffComp.Data[0]
- }
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/top/fprime_ref.xml b/compiler/tools/fpp-from-xml/test/top/fprime_ref.xml
deleted file mode 100644
index d1cf92f2e..000000000
--- a/compiler/tools/fpp-from-xml/test/top/fprime_ref.xml
+++ /dev/null
@@ -1,927 +0,0 @@
-
-
-
-
-
-
- Svc/FatalHandler/FatalHandlerComponentAi.xml
- Svc/ActiveRateGroup/ActiveRateGroupComponentAi.xml
- Ref/PingReceiver/PingReceiverComponentAi.xml
- Svc/TlmChan/TlmChanComponentAi.xml
- Ref/SendBuffApp/SendBuffComponentAi.xml
- Ref/RecvBuffApp/RecvBuffComponentAi.xml
- Svc/CmdDispatcher/CommandDispatcherComponentAi.xml
- Svc/PrmDb/PrmDbComponentAi.xml
- Svc/ActiveRateGroup/ActiveRateGroupComponentAi.xml
- Svc/CmdSequencer/CmdSequencerComponentAi.xml
- Ref/SignalGen/SignalGenComponentAi.xml
- Ref/SignalGen/SignalGenComponentAi.xml
- Ref/SignalGen/SignalGenComponentAi.xml
- Svc/ActiveRateGroup/ActiveRateGroupComponentAi.xml
- Svc/FileUplink/FileUplinkComponentAi.xml
- Ref/SignalGen/SignalGenComponentAi.xml
- Svc/BufferManager/BufferManagerComponentAi.xml
- Ref/SignalGen/SignalGenComponentAi.xml
- Svc/AssertFatalAdapter/AssertFatalAdapterComponentAi.xml
- Svc/Health/HealthComponentAi.xml
- Svc/BufferManager/BufferManagerComponentAi.xml
- Svc/ActiveLogger/ActiveLoggerComponentAi.xml
- Svc/Time/TimeComponentAi.xml
- Svc/RateGroupDriver/RateGroupDriverComponentAi.xml
- Drv/BlockDriver/BlockDriverComponentAi.xml
- Svc/FileDownlink/FileDownlinkComponentAi.xml
- Svc/FileManager/FileManagerComponentAi.xml
- Svc/PassiveConsoleTextLogger/PassiveTextLoggerComponentAi.xml
- Svc/LinuxTimer/LinuxTimerComponentAi.xml
- Drv/ByteStreamDriverModel/ByteStreamDriverComponentAi.xml
- Svc/StaticMemory/StaticMemoryComponentAi.xml
- Svc/Framer/FramerComponentAi.xml
- Svc/Deframer/DeframerComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.fpp b/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.fpp
deleted file mode 100644
index 7861d57ce..000000000
--- a/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.fpp
+++ /dev/null
@@ -1,5 +0,0 @@
-topology T {
-
- include "fprime_ref_packets.ref.txt"
-
-}
diff --git a/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.ref.txt b/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.ref.txt
deleted file mode 100644
index 86fa305e2..000000000
--- a/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.ref.txt
+++ /dev/null
@@ -1,265 +0,0 @@
-telemetry packets RefPackets {
-
- packet CDH id 1 group 1 {
- Ref.cmdDisp.CommandsDispatched
- Ref.rateGroup1Comp.RgMaxTime
- Ref.rateGroup2Comp.RgMaxTime
- Ref.rateGroup3Comp.RgMaxTime
- Ref.cmdSeq.CS_LoadCommands
- Ref.cmdSeq.CS_CancelCommands
- Ref.cmdSeq.CS_CommandsExecuted
- Ref.cmdSeq.CS_SequencesCompleted
- Ref.fileUplink.FilesReceived
- Ref.fileUplink.PacketsReceived
- Ref.fileUplinkBufferManager.TotalBuffs
- Ref.fileUplinkBufferManager.CurrBuffs
- Ref.fileUplinkBufferManager.HiBuffs
- Ref.fileDownlink.FilesSent
- Ref.fileDownlink.PacketsSent
- Ref.fileManager.CommandsExecuted
- }
-
- packet CDHErrors id 2 group 1 {
- Ref.rateGroup1Comp.RgCycleSlips
- Ref.rateGroup2Comp.RgCycleSlips
- Ref.rateGroup3Comp.RgCycleSlips
- Ref.cmdSeq.CS_Errors
- Ref.fileUplink.Warnings
- Ref.fileDownlink.Warnings
- Ref.$health.PingLateWarnings
- Ref.fileManager.Errors
- Ref.fileUplinkBufferManager.NoBuffs
- Ref.fileUplinkBufferManager.EmptyBuffs
- Ref.fileManager.Errors
- }
-
- packet DriveTlm id 3 group 1 {
- Ref.pingRcvr.PR_NumPings
- Ref.sendBuffComp.PacketsSent
- Ref.sendBuffComp.NumErrorsInjected
- Ref.sendBuffComp.Parameter3
- Ref.sendBuffComp.Parameter4
- Ref.sendBuffComp.SendState
- Ref.recvBuffComp.PktState
- Ref.recvBuffComp.Sensor1
- Ref.recvBuffComp.Sensor2
- Ref.recvBuffComp.Parameter1
- Ref.recvBuffComp.Parameter2
- Ref.blockDrv.BD_Cycles
- }
-
- packet SigGenSum id 4 group 1 {
- Ref.SG1.Output
- Ref.SG1.Type
- Ref.SG2.Output
- Ref.SG2.Type
- Ref.SG3.Output
- Ref.SG3.Type
- Ref.SG4.Output
- Ref.SG4.Type
- Ref.SG5.Output
- Ref.SG5.Type
- }
-
- packet SystemRes1 id 5 group 2 {
- Ref.systemResources.MEMORY_TOTAL
- Ref.systemResources.MEMORY_USED
- Ref.systemResources.NON_VOLATILE_TOTAL
- Ref.systemResources.NON_VOLATILE_FREE
- }
-
- packet SystemRes3 id 6 group 2 {
- Ref.systemResources.CPU
- Ref.systemResources.CPU_00
- Ref.systemResources.CPU_01
- Ref.systemResources.CPU_02
- Ref.systemResources.CPU_03
- Ref.systemResources.CPU_04
- Ref.systemResources.CPU_05
- Ref.systemResources.CPU_06
- Ref.systemResources.CPU_07
- Ref.systemResources.CPU_08
- Ref.systemResources.CPU_09
- Ref.systemResources.CPU_10
- Ref.systemResources.CPU_11
- Ref.systemResources.CPU_12
- Ref.systemResources.CPU_13
- Ref.systemResources.CPU_14
- Ref.systemResources.CPU_15
- }
-
- packet SigGen1Info id 10 group 2 {
- Ref.SG1.Info
- }
-
- packet SigGen2Info id 11 group 2 {
- Ref.SG2.Info
- }
-
- packet SigGen3Info id 12 group 2 {
- Ref.SG3.Info
- }
-
- packet SigGen4Info id 13 group 2 {
- Ref.SG4.Info
- }
-
- packet SigGen5Info id 14 group 2 {
- Ref.SG5.Info
- }
-
- packet SigGen1 id 15 group 3 {
- Ref.SG1.PairOutput
- Ref.SG1.History
- Ref.SG1.PairHistory
- Ref.SG1.DpBytes
- Ref.SG1.DpRecords
- }
-
- packet SigGen2 id 16 group 3 {
- Ref.SG2.PairOutput
- Ref.SG2.History
- Ref.SG2.PairHistory
- Ref.SG2.DpBytes
- Ref.SG2.DpRecords
- }
-
- packet SigGen3 id 17 group 3 {
- Ref.SG3.PairOutput
- Ref.SG3.History
- Ref.SG3.PairHistory
- Ref.SG3.DpBytes
- Ref.SG3.DpRecords
- }
-
- packet SigGen4 id 18 group 3 {
- Ref.SG4.PairOutput
- Ref.SG4.History
- Ref.SG4.PairHistory
- Ref.SG4.DpBytes
- Ref.SG4.DpRecords
- }
-
- packet SigGen5 id 19 group 3 {
- Ref.SG5.PairOutput
- Ref.SG5.History
- Ref.SG5.PairHistory
- Ref.SG5.DpBytes
- Ref.SG5.DpRecords
- }
-
- packet TypeDemo id 20 group 3 {
- Ref.typeDemo.ChoiceCh
- Ref.typeDemo.ChoicesCh
- Ref.typeDemo.ExtraChoicesCh
- Ref.typeDemo.ChoicePairCh
- Ref.typeDemo.ChoiceSlurryCh
- Ref.typeDemo.Float1Ch
- Ref.typeDemo.Float2Ch
- Ref.typeDemo.Float3Ch
- Ref.typeDemo.FloatSet
- Ref.typeDemo.ScalarStructCh
- Ref.typeDemo.ScalarU8Ch
- Ref.typeDemo.ScalarU16Ch
- Ref.typeDemo.ScalarU32Ch
- Ref.typeDemo.ScalarU64Ch
- Ref.typeDemo.ScalarI8Ch
- Ref.typeDemo.ScalarI16Ch
- Ref.typeDemo.ScalarI32Ch
- Ref.typeDemo.ScalarI64Ch
- Ref.typeDemo.ScalarF32Ch
- Ref.typeDemo.ScalarF64Ch
- }
-
- packet DataProducts id 21 group 3 {
- Ref.dpCat.CatalogDps
- Ref.dpCat.DpsSent
- Ref.dpMgr.NumSuccessfulAllocations
- Ref.dpMgr.NumFailedAllocations
- Ref.dpMgr.NumDataProducts
- Ref.dpMgr.NumBytes
- Ref.dpWriter.NumBuffersReceived
- Ref.dpWriter.NumBytesWritten
- Ref.dpWriter.NumSuccessfulWrites
- Ref.dpWriter.NumFailedWrites
- Ref.dpWriter.NumErrors
- Ref.dpBufferManager.TotalBuffs
- Ref.dpBufferManager.CurrBuffs
- Ref.dpBufferManager.HiBuffs
- Ref.dpBufferManager.NoBuffs
- Ref.dpBufferManager.EmptyBuffs
- }
-
- packet Version1 id 22 group 2 {
- Ref.version.FrameworkVersion
- Ref.version.ProjectVersion
- }
-
- packet Version_Library1 id 23 group 2 {
- Ref.version.LibraryVersion01
- Ref.version.LibraryVersion02
- }
-
- packet Version_Library2 id 24 group 2 {
- Ref.version.LibraryVersion03
- Ref.version.LibraryVersion04
- }
-
- packet Version_Library3 id 25 group 2 {
- Ref.version.LibraryVersion05
- Ref.version.LibraryVersion06
- }
-
- packet Version_Library4 id 26 group 2 {
- Ref.version.LibraryVersion07
- Ref.version.LibraryVersion08
- }
-
- packet Version_Library5 id 27 group 2 {
- Ref.version.LibraryVersion09
- Ref.version.LibraryVersion10
- }
-
- packet Version_Custom1 id 28 group 2 {
- Ref.version.CustomVersion01
- }
-
- packet Version_Custom2 id 29 group 2 {
- Ref.version.CustomVersion02
- }
-
- packet Version_Custom3 id 30 group 2 {
- Ref.version.CustomVersion03
- }
-
- packet Version_Custom4 id 31 group 2 {
- Ref.version.CustomVersion04
- }
-
- packet Version_Custom5 id 32 group 2 {
- Ref.version.CustomVersion05
- }
-
- packet Version_Custom6 id 33 group 2 {
- Ref.version.CustomVersion06
- }
-
- packet Version_Custom7 id 34 group 2 {
- Ref.version.CustomVersion07
- }
-
- packet Version_Custom8 id 35 group 2 {
- Ref.version.CustomVersion08
- }
-
- packet Version_Custom9 id 36 group 2 {
- Ref.version.CustomVersion09
- }
-
- packet Version_Custom10 id 37 group 2 {
- Ref.version.CustomVersion10
- }
-
-} omit {
- Ref.cmdDisp.CommandErrors
-}
diff --git a/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.xml b/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.xml
deleted file mode 100644
index e52579424..000000000
--- a/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.xml
+++ /dev/null
@@ -1,261 +0,0 @@
-
-
- Ref/Top/RefTopologyAppAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-from-xml/test/top/run b/compiler/tools/fpp-from-xml/test/top/run
deleted file mode 100755
index bf6f79f51..000000000
--- a/compiler/tools/fpp-from-xml/test/top/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/top/tests.sh b/compiler/tools/fpp-from-xml/test/top/tests.sh
deleted file mode 100644
index 868139043..000000000
--- a/compiler/tools/fpp-from-xml/test/top/tests.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-tests="
-fprime_ref
-fprime_ref_packets
-"
diff --git a/compiler/tools/fpp-from-xml/test/top/update-ref b/compiler/tools/fpp-from-xml/test/top/update-ref
deleted file mode 100755
index c905604d4..000000000
--- a/compiler/tools/fpp-from-xml/test/top/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/.gitignore b/compiler/tools/fpp-to-xml/test/.gitignore
deleted file mode 100644
index cef5898e8..000000000
--- a/compiler/tools/fpp-to-xml/test/.gitignore
+++ /dev/null
@@ -1,10 +0,0 @@
-*.diff.txt
-*.names.txt
-*.out.txt
-*Ac.cpp
-*Ac.hpp
-*Ai.xml
-*.csv
-DefaultDict
-default-tests.sh
-default-update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/README.adoc b/compiler/tools/fpp-to-xml/test/README.adoc
deleted file mode 100644
index 0ddc51844..000000000
--- a/compiler/tools/fpp-to-xml/test/README.adoc
+++ /dev/null
@@ -1,22 +0,0 @@
-== fpp-to-xml/test
-
-This is the test directory for the `fpp-to-xml` tool.
-
-=== Running Tests
-
-To run the tests, execute `./test` in this directory.
-All the tests should pass.
-
-=== Developing Tests
-
-When developing tests, run the tool `./check-xml`.
-This ensures that all the `*.ref.xml` files are valid F Prime XML files
-that produce valid {cpp} files when run through the F Prime code generator.
-
-Before running `check-xml`, do the following:
-
-* Check out a copy of the
-https://github.com/nasa/fprime[F Prime repository].
-
-* Set the shell environment variable `FPRIME` to point to
-the root of the F Prime repository.
diff --git a/compiler/tools/fpp-to-xml/test/T.hpp b/compiler/tools/fpp-to-xml/test/T.hpp
deleted file mode 100644
index aee00b435..000000000
--- a/compiler/tools/fpp-to-xml/test/T.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef __T_HPP__
-#define __T_HPP__
-
-#include "Fw/Types/Serializable.hpp"
-
-//! C++ interface for type T
-//! This simulates a handwritten C++ serializable class
-//! that is represented as an abstract type in an FPP model.
-class T :
- public Fw::Serializable
-{
-
- public:
-
- enum {
- SERIALIZED_SIZE = 10
- };
-
- public:
-
- T();
-
- public:
-
- bool operator==(const T& other) const;
- bool operator!=(const T& other) const;
-
- Fw::SerializeStatus serializeTo(Fw::SerializeBufferBase& buffer) const;
-
- Fw::SerializeStatus deserializeFrom(Fw::SerializeBufferBase& buffer);
-
-};
-
-#endif
diff --git a/compiler/tools/fpp-to-xml/test/Time.hpp b/compiler/tools/fpp-to-xml/test/Time.hpp
deleted file mode 100644
index 73cd3f13d..000000000
--- a/compiler/tools/fpp-to-xml/test/Time.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-#ifndef FW_TIME_HPP
-#define FW_TIME_HPP
-
-#include
-#include
-#include
-#include
-#include
-
-namespace Fw {
- class Time: public Serializable {
-
- friend class TimeTester;
-
- public:
-
- enum {
- SERIALIZED_SIZE = sizeof(FwTimeBaseStoreType)
- + sizeof(FwTimeContextStoreType)
- + sizeof(U32) + sizeof(U32)
- };
-
- Time(); // !< Default constructor
- Time(const Time& other); // !< Copy constructor
- Time(U32 seconds, U32 useconds); // !< Constructor with member values as arguments
- Time(TimeBase timeBase, U32 seconds, U32 useconds); // !< Constructor with member values as arguments
- Time(TimeBase timeBase, FwTimeContextStoreType context, U32 seconds, U32 useconds); // !< Constructor with member values as arguments
- virtual ~Time(); // !< Destructor
- void set(U32 seconds, U32 useconds); // !< Sets value of time stored
- void set(TimeBase timeBase, U32 seconds, U32 useconds); // !< Sets value of time stored
- void set(TimeBase timeBase, FwTimeContextStoreType context, U32 seconds, U32 useconds); // !< Sets value of time stored
- void setTimeBase(TimeBase timeBase);
- void setTimeContext(FwTimeContextStoreType context);
- U32 getSeconds() const; // !< Gets seconds part of time
- U32 getUSeconds() const; // !< Gets microseconds part of time
- TimeBase getTimeBase() const; // !< Time base of time. This is project specific and is meant for indicating different sources of time
- FwTimeContextStoreType getContext() const; // !< get the context value
- SerializeStatus serializeTo(SerializeBufferBase& buffer) const override; // !< Serialize method
- SerializeStatus deserializeFrom(SerializeBufferBase& buffer) override; // !< Deserialize method
- bool operator==(const Time& other) const;
- bool operator!=(const Time& other) const;
- bool operator>(const Time& other) const;
- bool operator<(const Time& other) const;
- bool operator>=(const Time& other) const;
- bool operator<=(const Time& other) const;
- Time& operator=(const Time& other);
-
- // Static methods:
- //! The type of a comparison result
- typedef enum {
- LT = -1,
- EQ = 0,
- GT = 1,
- INCOMPARABLE = 2
- } Comparison;
-
- //! \return time zero
- static Time zero(TimeBase timeBase=TimeBase::TB_NONE);
-
- //! Compare two times
- //! \return The result
- static Comparison compare(
- const Time &time1, //!< Time 1
- const Time &time2 //!< Time 2
- );
-
- //! Add two times
- //! \return The result
- static Time add(
- const Time& a, //!< Time a
- const Time& b //!< Time b
- );
-
- //! Subtract subtrahend from minuend
- //! \return The result
- static Time sub(
- const Time& minuend, //!< Value being subtracted from
- const Time& subtrahend //!< Value being subtracted
- );
-
- // add seconds and microseconds to existing time
- void add(U32 seconds, U32 mseconds);
-
-#ifdef BUILD_UT // Stream operators to support Googletest
- friend std::ostream& operator<<(std::ostream& os, const Time& val);
-#endif
- private:
- TimeValue m_val; // !< Time value
- };
- extern const Time ZERO_TIME;
-
-}
-
-#endif
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayEnum1ArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayEnum1ArrayAi.ref.xml
deleted file mode 100644
index 2d837a02e..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayEnum1ArrayAi.ref.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- ArrayEnumE1EnumAi.xml
-
- Array with enum argument
-
- M::ArrayEnumE1
- 2
- %s
-
- M::ArrayEnumE1::X
- M::ArrayEnumE1::X
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayEnum2ArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayEnum2ArrayAi.ref.xml
deleted file mode 100644
index 090973b93..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayEnum2ArrayAi.ref.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- ArrayEnumE2EnumAi.xml
- M::ArrayEnumE2
- 5
- %s
-
- M::ArrayEnumE2::A
- M::ArrayEnumE2::A
- M::ArrayEnumE2::A
- M::ArrayEnumE2::A
- M::ArrayEnumE2::A
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayEnumE1EnumAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayEnumE1EnumAi.ref.xml
deleted file mode 100644
index 507199706..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayEnumE1EnumAi.ref.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayEnumE2EnumAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayEnumE2EnumAi.ref.xml
deleted file mode 100644
index cf2a8f49e..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayEnumE2EnumAi.ref.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayOK1ArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayOK1ArrayAi.ref.xml
deleted file mode 100644
index bf03bd987..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayOK1ArrayAi.ref.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
- F32
- 5
- %.3f
-
- 1.0f
- 1.0f
- 1.0f
- 1.0f
- 1.0f
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayOK2ArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayOK2ArrayAi.ref.xml
deleted file mode 100644
index 083cf3e4b..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayOK2ArrayAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- ArrayOK1ArrayAi.xml
- M1::ArrayOK1
- 3
- %s
-
- M1::ArrayOK1(1.0f)
- M1::ArrayOK1(1.0f)
- M1::ArrayOK1(1.0f)
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayOK3ArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayOK3ArrayAi.ref.xml
deleted file mode 100644
index f89f4030d..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayOK3ArrayAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
- string
- 2
- %s
-
- Fw::String("\"\\")
- Fw::String("abc\ndef\n")
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayOK4ArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayOK4ArrayAi.ref.xml
deleted file mode 100644
index bcaa2bd25..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayOK4ArrayAi.ref.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
- ArrayOK3ArrayAi.xml
-
- Array with array arg
-
- M2::ArrayOK3
- 4
- %s
-
- M2::ArrayOK3({Fw::String("\"\\"), Fw::String("abc\ndef\n")})
- M2::ArrayOK3({Fw::String("\"\\"), Fw::String("abc\ndef\n")})
- M2::ArrayOK3({Fw::String("\"\\"), Fw::String("abc\ndef\n")})
- M2::ArrayOK3({Fw::String("\"\\"), Fw::String("abc\ndef\n")})
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayOK5ArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayOK5ArrayAi.ref.xml
deleted file mode 100644
index 66cf51d97..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayOK5ArrayAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- T.hpp
- T
- 3
- %s
-
- T()
- T()
- T()
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArraySpecialCommentArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArraySpecialCommentArrayAi.ref.xml
deleted file mode 100644
index 259330be6..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArraySpecialCommentArrayAi.ref.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- An array with special characters in XML comments
- &'<>"
- &'<>"
-
- U32
- 3
- %u
-
- 0
- 0
- 0
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayStruct1ArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayStruct1ArrayAi.ref.xml
deleted file mode 100644
index 58220de49..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayStruct1ArrayAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- ArrayStructS1SerializableAi.xml
- M1::ArrayStructS1
- 2
- %s
-
- M1::ArrayStructS1(0.0f, 0.0, 0, 0, 0, 0, 0, 0, 0, 0, false, Fw::String(""), T())
- M1::ArrayStructS1(0.0f, 0.0, 0, 0, 0, 0, 0, 0, 0, 0, false, Fw::String(""), T())
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayStruct2ArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayStruct2ArrayAi.ref.xml
deleted file mode 100644
index 3f17e557b..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayStruct2ArrayAi.ref.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- ArrayStructS2SerializableAi.xml
-
- Array with struct arg
-
- ArrayStructS2
- 3
- %s
-
- ArrayStructS2(M1::ArrayStructS1(0.0f, 0.0, 0, 0, 0, 0, 0, 0, 0, 0, false, Fw::String(""), T()))
- ArrayStructS2(M1::ArrayStructS1(0.0f, 0.0, 0, 0, 0, 0, 0, 0, 0, 0, false, Fw::String(""), T()))
- ArrayStructS2(M1::ArrayStructS1(0.0f, 0.0, 0, 0, 0, 0, 0, 0, 0, 0, false, Fw::String(""), T()))
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayStructMemberArrayArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayStructMemberArrayArrayAi.ref.xml
deleted file mode 100644
index 6f1beed0c..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayStructMemberArrayArrayAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- ArrayStructMemberArraySerializableAi.xml
- S::ArrayStructMemberArray
- 3
- %s
-
- S::ArrayStructMemberArray(0, 0.0)
- S::ArrayStructMemberArray(0, 0.0)
- S::ArrayStructMemberArray(0, 0.0)
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayStructMemberArraySerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayStructMemberArraySerializableAi.ref.xml
deleted file mode 100644
index ce0dfdddc..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayStructMemberArraySerializableAi.ref.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- A struct with a member array
-
-
-
- 0
-
-
- 0.0
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayStructS1SerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayStructS1SerializableAi.ref.xml
deleted file mode 100644
index ed7357c97..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayStructS1SerializableAi.ref.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
- T.hpp
-
-
- 0.0f
-
-
- 0.0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- false
-
-
- Fw::String("")
-
-
- T()
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/ArrayStructS2SerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/array/ArrayStructS2SerializableAi.ref.xml
deleted file mode 100644
index cf0ff4833..000000000
--- a/compiler/tools/fpp-to-xml/test/array/ArrayStructS2SerializableAi.ref.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- ArrayStructS1SerializableAi.xml
-
-
- M1::ArrayStructS1(0.0f, 0.0, 0, 0, 0, 0, 0, 0, 0, 0, false, Fw::String(""), T())
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/array/array_enum.fpp b/compiler/tools/fpp-to-xml/test/array/array_enum.fpp
deleted file mode 100644
index 824a63337..000000000
--- a/compiler/tools/fpp-to-xml/test/array/array_enum.fpp
+++ /dev/null
@@ -1,24 +0,0 @@
-module M {
-
- enum ArrayEnumE1 {
- X = 1 @< Example comment
- Y = 2
- Z = 9
- }
-
- enum ArrayEnumE2 {
- A = 10
- B = 20
- C = 30
- D = 40
- }
-
-}
-
-module N {
-
- array ArrayEnum1 = [2] M.ArrayEnumE1 @< Array with enum argument
-
- array ArrayEnum2 = [5] M.ArrayEnumE2
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/array/array_enum.ref.txt b/compiler/tools/fpp-to-xml/test/array/array_enum.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/array/array_ok.fpp b/compiler/tools/fpp-to-xml/test/array/array_ok.fpp
deleted file mode 100644
index 6b099ec7b..000000000
--- a/compiler/tools/fpp-to-xml/test/array/array_ok.fpp
+++ /dev/null
@@ -1,24 +0,0 @@
-module M1 {
- array ArrayOK1 = [5] F32 default 1 format "{.03f}"
-}
-
-module M2 {
-
- array ArrayOK2 = [3] M1.ArrayOK1
-
- array ArrayOK3 = [2] string default ["\"\\", """
- abc
- def
- """]
-
-}
-
-module M3 {
- array ArrayOK4 = [4] M2.ArrayOK3 @< Array with array arg
-}
-
-type T
-
-module M4 {
- array ArrayOK5 = [3] T
-}
diff --git a/compiler/tools/fpp-to-xml/test/array/array_ok.ref.txt b/compiler/tools/fpp-to-xml/test/array/array_ok.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/array/array_special_comment.fpp b/compiler/tools/fpp-to-xml/test/array/array_special_comment.fpp
deleted file mode 100644
index c768525a4..000000000
--- a/compiler/tools/fpp-to-xml/test/array/array_special_comment.fpp
+++ /dev/null
@@ -1,3 +0,0 @@
-@ An array with special characters in XML comments
-@ &'<>"
-array ArraySpecialComment = [3] U32 @< &'<>"
diff --git a/compiler/tools/fpp-to-xml/test/array/array_special_comment.ref.txt b/compiler/tools/fpp-to-xml/test/array/array_special_comment.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/array/array_struct.fpp b/compiler/tools/fpp-to-xml/test/array/array_struct.fpp
deleted file mode 100644
index 5900d30b2..000000000
--- a/compiler/tools/fpp-to-xml/test/array/array_struct.fpp
+++ /dev/null
@@ -1,29 +0,0 @@
-type T
-
-module M1 {
- struct ArrayStructS1 {
- mF32: F32
- mF64: F64
- mI16: I16
- mI32: I32
- mI64: I64
- mI8: I8
- mU16: U16
- mU32: U32
- mU64: U64
- mU8: U8
- m_bool: bool
- m_string: string
- m_absType: T
- }
-}
-
-struct ArrayStructS2 {
- s1: M1.ArrayStructS1
-}
-
-array ArrayStruct1 = [2] M1.ArrayStructS1
-
-module M2 {
- array ArrayStruct2 = [3] ArrayStructS2 @< Array with struct arg
-}
diff --git a/compiler/tools/fpp-to-xml/test/array/array_struct.ref.txt b/compiler/tools/fpp-to-xml/test/array/array_struct.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/array/array_struct_member_array.fpp b/compiler/tools/fpp-to-xml/test/array/array_struct_member_array.fpp
deleted file mode 100644
index 6b711f043..000000000
--- a/compiler/tools/fpp-to-xml/test/array/array_struct_member_array.fpp
+++ /dev/null
@@ -1,13 +0,0 @@
-type T
-
-module S {
- @ A struct with a member array
- struct ArrayStructMemberArray {
- mU32Array: [3] U32
- mF64: F64
- }
-}
-
-module A {
- array ArrayStructMemberArray = [3] S.ArrayStructMemberArray
-}
diff --git a/compiler/tools/fpp-to-xml/test/array/array_struct_member_array.ref.txt b/compiler/tools/fpp-to-xml/test/array/array_struct_member_array.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/array/check-xml b/compiler/tools/fpp-to-xml/test/array/check-xml
deleted file mode 100755
index f42fec066..000000000
--- a/compiler/tools/fpp-to-xml/test/array/check-xml
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../..
-
-skip_xml_names="
-ArrayStruct1Array
-"
-
-for name in $skip_xml_names
-do
- export SKIP_XML_FOR_$name=1
-done
-
-skip_cpp_names="
-BuiltInTypeArray
-ArrayStruct1Array
-"
-
-sh ../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/array/clean b/compiler/tools/fpp-to-xml/test/array/clean
deleted file mode 100755
index 5a2a7feb8..000000000
--- a/compiler/tools/fpp-to-xml/test/array/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/array/run b/compiler/tools/fpp-to-xml/test/array/run
deleted file mode 100755
index bf6f79f51..000000000
--- a/compiler/tools/fpp-to-xml/test/array/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/array/run.sh b/compiler/tools/fpp-to-xml/test/array/run.sh
deleted file mode 100644
index da58b39ce..000000000
--- a/compiler/tools/fpp-to-xml/test/array/run.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-
-array_enum()
-{
- run_test "-p $PWD" array_enum && \
- diff_xml ArrayEnumE1Enum ArrayEnumE2Enum ArrayEnum1Array ArrayEnum2Array
-}
-
-array_ok()
-{
- run_test "-p $PWD" array_ok && \
- diff_xml ArrayOK1Array ArrayOK2Array ArrayOK3Array ArrayOK4Array ArrayOK5Array
-}
-
-array_special_comment()
-{
- run_test "-p $PWD" array_special_comment && \
- diff_xml ArraySpecialCommentArray
-}
-
-array_struct()
-{
- run_test "-p $PWD" array_struct && \
- diff_xml ArrayStructS1Serializable ArrayStructS2Serializable ArrayStruct1Array ArrayStruct2Array
-}
-
-array_struct_member_array()
-{
- run_test "-p $PWD" array_struct_member_array && \
- diff_xml ArrayStructMemberArraySerializable ArrayStructMemberArrayArray
-}
diff --git a/compiler/tools/fpp-to-xml/test/array/tests.sh b/compiler/tools/fpp-to-xml/test/array/tests.sh
deleted file mode 100644
index 51593a9b3..000000000
--- a/compiler/tools/fpp-to-xml/test/array/tests.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-tests="
-array_enum
-array_ok
-array_special_comment
-array_struct
-array_struct_member_array
-"
diff --git a/compiler/tools/fpp-to-xml/test/array/update-ref b/compiler/tools/fpp-to-xml/test/array/update-ref
deleted file mode 100755
index c905604d4..000000000
--- a/compiler/tools/fpp-to-xml/test/array/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/array/update-ref.sh b/compiler/tools/fpp-to-xml/test/array/update-ref.sh
deleted file mode 100644
index 503fd764e..000000000
--- a/compiler/tools/fpp-to-xml/test/array/update-ref.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-
-array_enum()
-{
- update "-p $PWD" array_enum
- move_xml ArrayEnumE1Enum ArrayEnumE2Enum ArrayEnum1Array ArrayEnum2Array
-}
-
-array_ok()
-{
- update "-p $PWD" array_ok
- indices=`seq 1 5`
- move_xml ArrayOK1Array ArrayOK2Array ArrayOK3Array ArrayOK4Array ArrayOK5Array
-}
-
-array_special_comment()
-{
- update "-p $PWD" array_special_comment
- move_xml ArraySpecialCommentArray
-}
-
-array_struct()
-{
- update "-p $PWD" array_struct
- move_xml ArrayStructS1Serializable ArrayStructS2Serializable ArrayStruct1Array ArrayStruct2Array
-}
-
-
-array_struct_member_array()
-{
- update "-p $PWD" array_struct_member_array
- move_xml ArrayStructMemberArraySerializable ArrayStructMemberArrayArray
-}
diff --git a/compiler/tools/fpp-to-xml/test/check-xml b/compiler/tools/fpp-to-xml/test/check-xml
deleted file mode 100755
index 7c28ee13e..000000000
--- a/compiler/tools/fpp-to-xml/test/check-xml
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh -e
-
-. ../../../scripts/utils.sh
-
-for target in `find . -mindepth 2 -name check-xml`
-do
- dir=`dirname $target`
- echo "[ $dir ]"
- (cd $dir; ./check-xml)
-done
diff --git a/compiler/tools/fpp-to-xml/test/clean b/compiler/tools/fpp-to-xml/test/clean
deleted file mode 100755
index 25d0c051c..000000000
--- a/compiler/tools/fpp-to-xml/test/clean
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh -e
-
-. ../../../scripts/utils.sh
-
-for target in `find . -mindepth 2 -name clean`
-do
- dir=`dirname $target`
- (cd $dir; ./clean)
-done
-clean
diff --git a/compiler/tools/fpp-to-xml/test/component/CmdPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/CmdPortAi.ref.xml
deleted file mode 100644
index 1ba8c8dfc..000000000
--- a/compiler/tools/fpp-to-xml/test/component/CmdPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/CmdRegPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/CmdRegPortAi.ref.xml
deleted file mode 100644
index 932f7f8fb..000000000
--- a/compiler/tools/fpp-to-xml/test/component/CmdRegPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/CmdResponsePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/CmdResponsePortAi.ref.xml
deleted file mode 100644
index a26aa0476..000000000
--- a/compiler/tools/fpp-to-xml/test/component/CmdResponsePortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/CommandsComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/CommandsComponentAi.ref.xml
deleted file mode 100644
index 464b20439..000000000
--- a/compiler/tools/fpp-to-xml/test/component/CommandsComponentAi.ref.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
- CmdPortAi.xml
- CmdRegPortAi.xml
- CmdResponsePortAi.xml
- PPortAi.xml
-
-
-
-
-
-
-
-
-
-
-
- Command C1
-
-
-
-
-
-
-
- Command C5
-
-
-
-
-
-
-
- Command C6
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/DpBufferRequestPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/DpBufferRequestPortAi.ref.xml
deleted file mode 100644
index 25248b4bb..000000000
--- a/compiler/tools/fpp-to-xml/test/component/DpBufferRequestPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/DpBufferSendPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/DpBufferSendPortAi.ref.xml
deleted file mode 100644
index 58f76284e..000000000
--- a/compiler/tools/fpp-to-xml/test/component/DpBufferSendPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/DpGetPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/DpGetPortAi.ref.xml
deleted file mode 100644
index b934c3508..000000000
--- a/compiler/tools/fpp-to-xml/test/component/DpGetPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/DpRequestPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/DpRequestPortAi.ref.xml
deleted file mode 100644
index e25753f44..000000000
--- a/compiler/tools/fpp-to-xml/test/component/DpRequestPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/DpResponsePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/DpResponsePortAi.ref.xml
deleted file mode 100644
index 31e54e681..000000000
--- a/compiler/tools/fpp-to-xml/test/component/DpResponsePortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/DpSendPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/DpSendPortAi.ref.xml
deleted file mode 100644
index 4391b0065..000000000
--- a/compiler/tools/fpp-to-xml/test/component/DpSendPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/EmptyComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/EmptyComponentAi.ref.xml
deleted file mode 100644
index f13c403fa..000000000
--- a/compiler/tools/fpp-to-xml/test/component/EmptyComponentAi.ref.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/EventsComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/EventsComponentAi.ref.xml
deleted file mode 100644
index 49231146e..000000000
--- a/compiler/tools/fpp-to-xml/test/component/EventsComponentAi.ref.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
- LogPortAi.xml
- LogTextPortAi.xml
- TimePortAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/GeneralPorts1ComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/GeneralPorts1ComponentAi.ref.xml
deleted file mode 100644
index 2ba7baeb2..000000000
--- a/compiler/tools/fpp-to-xml/test/component/GeneralPorts1ComponentAi.ref.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
- Component GeneralPorts1
-
-
- PPortAi.xml
-
-
-
-
- Port p1
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/GeneralPorts2ComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/GeneralPorts2ComponentAi.ref.xml
deleted file mode 100644
index d1aad4228..000000000
--- a/compiler/tools/fpp-to-xml/test/component/GeneralPorts2ComponentAi.ref.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
- Component GeneralPorts2
-
-
- PPortAi.xml
-
-
-
-
- Port p1
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/InternalPortsComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/InternalPortsComponentAi.ref.xml
deleted file mode 100644
index 021e390f4..000000000
--- a/compiler/tools/fpp-to-xml/test/component/InternalPortsComponentAi.ref.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/LogPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/LogPortAi.ref.xml
deleted file mode 100644
index 9b6927984..000000000
--- a/compiler/tools/fpp-to-xml/test/component/LogPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/LogTextPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/LogTextPortAi.ref.xml
deleted file mode 100644
index 97635152b..000000000
--- a/compiler/tools/fpp-to-xml/test/component/LogTextPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/PPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/PPortAi.ref.xml
deleted file mode 100644
index 64b132daf..000000000
--- a/compiler/tools/fpp-to-xml/test/component/PPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/ParametersComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/ParametersComponentAi.ref.xml
deleted file mode 100644
index 506d6a74a..000000000
--- a/compiler/tools/fpp-to-xml/test/component/ParametersComponentAi.ref.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
- CmdPortAi.xml
- CmdRegPortAi.xml
- CmdResponsePortAi.xml
- PrmGetPortAi.xml
- PrmSetPortAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
- Parameter P1
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/PrmGetPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/PrmGetPortAi.ref.xml
deleted file mode 100644
index 025e72b14..000000000
--- a/compiler/tools/fpp-to-xml/test/component/PrmGetPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/PrmSetPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/PrmSetPortAi.ref.xml
deleted file mode 100644
index b05b2dec4..000000000
--- a/compiler/tools/fpp-to-xml/test/component/PrmSetPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/ProductRecvPortAsyncComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/ProductRecvPortAsyncComponentAi.ref.xml
deleted file mode 100644
index 3faf62275..000000000
--- a/compiler/tools/fpp-to-xml/test/component/ProductRecvPortAsyncComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- DpResponsePortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/ProductRecvPortGuardedComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/ProductRecvPortGuardedComponentAi.ref.xml
deleted file mode 100644
index 96c804fdb..000000000
--- a/compiler/tools/fpp-to-xml/test/component/ProductRecvPortGuardedComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- DpResponsePortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/SpecialPortsComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/SpecialPortsComponentAi.ref.xml
deleted file mode 100644
index 3cda96fc3..000000000
--- a/compiler/tools/fpp-to-xml/test/component/SpecialPortsComponentAi.ref.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
- CmdPortAi.xml
- CmdRegPortAi.xml
- CmdResponsePortAi.xml
- DpGetPortAi.xml
- DpRequestPortAi.xml
- DpResponsePortAi.xml
- DpSendPortAi.xml
- LogPortAi.xml
- LogTextPortAi.xml
- PrmGetPortAi.xml
- PrmSetPortAi.xml
- TlmPortAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/TelemetryComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/TelemetryComponentAi.ref.xml
deleted file mode 100644
index 422dd0928..000000000
--- a/compiler/tools/fpp-to-xml/test/component/TelemetryComponentAi.ref.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- TimePortAi.xml
- TlmPortAi.xml
-
-
-
-
-
-
-
-
-
- Channel C1
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/TimePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/TimePortAi.ref.xml
deleted file mode 100644
index 96322ebcd..000000000
--- a/compiler/tools/fpp-to-xml/test/component/TimePortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/TlmPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/TlmPortAi.ref.xml
deleted file mode 100644
index c6e3afdd1..000000000
--- a/compiler/tools/fpp-to-xml/test/component/TlmPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/TypesComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/TypesComponentAi.ref.xml
deleted file mode 100644
index 16e0d8e9c..000000000
--- a/compiler/tools/fpp-to-xml/test/component/TypesComponentAi.ref.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
- Types_AArrayAi.xml
- Types_EEnumAi.xml
- Types_SSerializableAi.xml
- Types_T.hpp
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/Types_AArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/Types_AArrayAi.ref.xml
deleted file mode 100644
index 1fd1870f6..000000000
--- a/compiler/tools/fpp-to-xml/test/component/Types_AArrayAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- U32
- 3
- %u
-
- 0
- 0
- 0
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/Types_AUseArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/Types_AUseArrayAi.ref.xml
deleted file mode 100644
index e39251006..000000000
--- a/compiler/tools/fpp-to-xml/test/component/Types_AUseArrayAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- Types_AArrayAi.xml
- M::Types_A
- 3
- %s
-
- M::Types_A(0)
- M::Types_A(0)
- M::Types_A(0)
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/Types_EEnumAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/Types_EEnumAi.ref.xml
deleted file mode 100644
index b9c46fda0..000000000
--- a/compiler/tools/fpp-to-xml/test/component/Types_EEnumAi.ref.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/Types_EUseArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/Types_EUseArrayAi.ref.xml
deleted file mode 100644
index f6907a5e0..000000000
--- a/compiler/tools/fpp-to-xml/test/component/Types_EUseArrayAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- Types_EEnumAi.xml
- M::Types_E
- 3
- %s
-
- M::Types_E::X
- M::Types_E::X
- M::Types_E::X
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/Types_SSerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/Types_SSerializableAi.ref.xml
deleted file mode 100644
index 301d6e7c3..000000000
--- a/compiler/tools/fpp-to-xml/test/component/Types_SSerializableAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
- 0
-
-
- 0.0f
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/Types_SUseArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/Types_SUseArrayAi.ref.xml
deleted file mode 100644
index 8976518d0..000000000
--- a/compiler/tools/fpp-to-xml/test/component/Types_SUseArrayAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- Types_SSerializableAi.xml
- M::Types_S
- 3
- %s
-
- M::Types_S(0, 0.0f)
- M::Types_S(0, 0.0f)
- M::Types_S(0, 0.0f)
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/Types_T.hpp b/compiler/tools/fpp-to-xml/test/component/Types_T.hpp
deleted file mode 100644
index 54a244067..000000000
--- a/compiler/tools/fpp-to-xml/test/component/Types_T.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef __Types_T_HPP__
-#define __Types_T_HPP__
-
-#include "Fw/Types/Serializable.hpp"
-
-namespace M {
-
-//! C++ interface for type Types_T
-//! This simulates a handwritten C++ serializable class
-//! that is represented as an abstract type in an FPP model.
-class Types_T :
- public Fw::Serializable
-{
-
- public:
-
- enum {
- SERIALIZED_SIZE = 10
- };
-
- public:
-
- Types_T();
-
- public:
-
- bool operator==(const Types_T& other) const;
- bool operator!=(const Types_T& other) const;
-
- Fw::SerializeStatus serializeTo(Fw::SerializeBufferBase& buffer) const;
-
- Fw::SerializeStatus deserializeFrom(Fw::SerializeBufferBase& buffer);
-
-};
-
-}
-
-#endif
diff --git a/compiler/tools/fpp-to-xml/test/component/Types_TUseArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/component/Types_TUseArrayAi.ref.xml
deleted file mode 100644
index 9f3842b8e..000000000
--- a/compiler/tools/fpp-to-xml/test/component/Types_TUseArrayAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- Types_T.hpp
- M::Types_T
- 3
- %s
-
- M::Types_T()
- M::Types_T()
- M::Types_T()
-
-
diff --git a/compiler/tools/fpp-to-xml/test/component/check-xml b/compiler/tools/fpp-to-xml/test/component/check-xml
deleted file mode 100755
index c944c3855..000000000
--- a/compiler/tools/fpp-to-xml/test/component/check-xml
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../..
-
-skip_xml_names="
-"
-
-for name in $skip_xml_names
-do
- export SKIP_XML_FOR_$name=1
-done
-
-skip_cpp_names="
-CommandsComponent
-EventsComponent
-ParametersComponent
-TelemetryComponent
-"
-
-sh ../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/component/clean b/compiler/tools/fpp-to-xml/test/component/clean
deleted file mode 100755
index 5a2a7feb8..000000000
--- a/compiler/tools/fpp-to-xml/test/component/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/component/commands.fpp b/compiler/tools/fpp-to-xml/test/component/commands.fpp
deleted file mode 100644
index aeb666ae8..000000000
--- a/compiler/tools/fpp-to-xml/test/component/commands.fpp
+++ /dev/null
@@ -1,25 +0,0 @@
-module M {
-
- active component Commands {
-
- async input port p: P
-
- command reg port cmdRegOut
- command recv port cmdIn
- command resp port cmdResponseOut
-
- @ Command C1
- async command C1
- async command C2 priority 10
- async command C3 drop
- async command C4 priority 10 drop
-
- @ Command C5
- sync command C5(a: U32)
-
- @ Command C6
- guarded command C6(a: F32)
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/component/commands.ref.txt b/compiler/tools/fpp-to-xml/test/component/commands.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/component/empty.fpp b/compiler/tools/fpp-to-xml/test/component/empty.fpp
deleted file mode 100644
index c96ea0398..000000000
--- a/compiler/tools/fpp-to-xml/test/component/empty.fpp
+++ /dev/null
@@ -1,7 +0,0 @@
-module M {
-
- passive component Empty {
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/component/empty.ref.txt b/compiler/tools/fpp-to-xml/test/component/empty.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/component/events.fpp b/compiler/tools/fpp-to-xml/test/component/events.fpp
deleted file mode 100644
index 397ef671c..000000000
--- a/compiler/tools/fpp-to-xml/test/component/events.fpp
+++ /dev/null
@@ -1,15 +0,0 @@
-passive component Events {
-
- event port eventOut
-
- text event port textEventOut
-
- time get port timeGetOut
-
- event E1 severity activity low format "E1"
- event E2 severity activity low id 10 format "E2"
- event E3(a: U32) severity activity low format "E3: a={}"
- event E4(a: U32) severity activity low format "E4: a={}" throttle 10
- event Escape severity activity low format "\"&'<>"
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/component/events.ref.txt b/compiler/tools/fpp-to-xml/test/component/events.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/component/general_ports.fpp b/compiler/tools/fpp-to-xml/test/component/general_ports.fpp
deleted file mode 100644
index 64e73a55c..000000000
--- a/compiler/tools/fpp-to-xml/test/component/general_ports.fpp
+++ /dev/null
@@ -1,35 +0,0 @@
-module M {
-
- @ Component GeneralPorts1
- active component GeneralPorts1 {
-
- @ Port p1
- async input port p1: P priority 10 drop
- guarded input port p2: P
- sync input port p3: P
- output port p4: [10] P
-
-
- async input port p5: serial
- guarded input port p6: serial
- sync input port p7: serial
- output port p8: [10] serial
-
- async input port p9: P hook
- }
-
- @ Component GeneralPorts2
- passive component GeneralPorts2 {
-
- @ Port p1
- guarded input port p1: P
- sync input port p2: P
- output port p3: [10] P
-
- guarded input port p4: serial
- sync input port p5: serial
- output port p6: [10] serial
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/component/general_ports.ref.txt b/compiler/tools/fpp-to-xml/test/component/general_ports.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/component/internal_ports.fpp b/compiler/tools/fpp-to-xml/test/component/internal_ports.fpp
deleted file mode 100644
index 0bcd99779..000000000
--- a/compiler/tools/fpp-to-xml/test/component/internal_ports.fpp
+++ /dev/null
@@ -1,14 +0,0 @@
-module M {
-
- active component InternalPorts {
-
- async input port p1: P
-
- internal port p2(a: U32)
- internal port p3(a: U32) priority 10
- internal port p4(a: U32) drop
- internal port p5(a: U32) priority 10 drop
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/component/internal_ports.ref.txt b/compiler/tools/fpp-to-xml/test/component/internal_ports.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/component/parameters.fpp b/compiler/tools/fpp-to-xml/test/component/parameters.fpp
deleted file mode 100644
index 5de2e9cc6..000000000
--- a/compiler/tools/fpp-to-xml/test/component/parameters.fpp
+++ /dev/null
@@ -1,19 +0,0 @@
-passive component Parameters {
-
- command recv port cmdIn
-
- command reg port cmdRegOut
-
- command resp port cmdResponseOut
-
- param get port paramGetOut
-
- param set port paramSetOut
-
- @ Parameter P1
- param P1: U32
- param P2: F32 set opcode 0x100 save opcode 0x101
- param P3: I32 default 10
- param P4: string default "a\"bc"
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/component/parameters.ref.txt b/compiler/tools/fpp-to-xml/test/component/parameters.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/component/ports.fpp b/compiler/tools/fpp-to-xml/test/component/ports.fpp
deleted file mode 100644
index acd1ce8e8..000000000
--- a/compiler/tools/fpp-to-xml/test/component/ports.fpp
+++ /dev/null
@@ -1,23 +0,0 @@
-module M {
-
- port P
-
-}
-
-module Fw {
-
- port Cmd
- port CmdReg
- port CmdResponse
- port DpGet
- port DpRequest
- port DpResponse
- port DpSend
- port Log
- port LogText
- port PrmGet
- port PrmSet
- port Time
- port Tlm
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/component/ports.ref.txt b/compiler/tools/fpp-to-xml/test/component/ports.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/component/product_recv_port_async.fpp b/compiler/tools/fpp-to-xml/test/component/product_recv_port_async.fpp
deleted file mode 100644
index 1bdcf034c..000000000
--- a/compiler/tools/fpp-to-xml/test/component/product_recv_port_async.fpp
+++ /dev/null
@@ -1,9 +0,0 @@
-module M {
-
- active component ProductRecvPortAsync {
-
- async product recv port productRecvIn priority 10 drop
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/component/product_recv_port_async.ref.txt b/compiler/tools/fpp-to-xml/test/component/product_recv_port_async.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/component/product_recv_port_guarded.fpp b/compiler/tools/fpp-to-xml/test/component/product_recv_port_guarded.fpp
deleted file mode 100644
index ba7d8254f..000000000
--- a/compiler/tools/fpp-to-xml/test/component/product_recv_port_guarded.fpp
+++ /dev/null
@@ -1,9 +0,0 @@
-module M {
-
- passive component ProductRecvPortGuarded {
-
- guarded product recv port productRecvIn
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/component/product_recv_port_guarded.ref.txt b/compiler/tools/fpp-to-xml/test/component/product_recv_port_guarded.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/component/run b/compiler/tools/fpp-to-xml/test/component/run
deleted file mode 100755
index bf6f79f51..000000000
--- a/compiler/tools/fpp-to-xml/test/component/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/component/run.sh b/compiler/tools/fpp-to-xml/test/component/run.sh
deleted file mode 100644
index 73f2a8512..000000000
--- a/compiler/tools/fpp-to-xml/test/component/run.sh
+++ /dev/null
@@ -1,85 +0,0 @@
-commands()
-{
- run_test "-p $PWD -i ports.fpp" commands && \
- diff_xml CommandsComponent
-}
-
-empty()
-{
- run_test "-p $PWD" empty && \
- diff_xml EmptyComponent
-}
-
-events()
-{
- run_test "-p $PWD -i ports.fpp" events && \
- diff_xml EventsComponent
-}
-
-general_ports()
-{
- run_test "-p $PWD -i ports.fpp" general_ports && \
- diff_xml GeneralPorts1Component GeneralPorts2Component
-}
-
-internal_ports()
-{
- run_test "-p $PWD -i ports.fpp" internal_ports && \
- diff_xml InternalPortsComponent
-}
-
-parameters()
-{
- run_test "-p $PWD -i ports.fpp" parameters && \
- diff_xml ParametersComponent
-}
-
-ports()
-{
- run_test "-p $PWD" ports && \
- diff_xml PPort \
- CmdPort CmdRegPort CmdResponsePort \
- DpGetPort DpRequestPort DpResponsePort DpSendPort \
- LogPort LogTextPort \
- PrmGetPort PrmSetPort \
- TimePort \
- TlmPort
-}
-
-product_recv_port_async()
-{
- run_test "-p $PWD -i ports.fpp" product_recv_port_async && \
- diff_xml ProductRecvPortAsyncComponent
-}
-
-product_recv_port_guarded()
-{
- run_test "-p $PWD -i ports.fpp" product_recv_port_guarded && \
- diff_xml ProductRecvPortGuardedComponent
-}
-
-special_ports()
-{
- run_test "-p $PWD -i ports.fpp" special_ports && \
- diff_xml SpecialPortsComponent
-}
-
-telemetry()
-{
- run_test "-p $PWD -i ports.fpp" telemetry && \
- diff_xml TelemetryComponent
-}
-
-types()
-{
- run_test "-p $PWD -n types.names.txt" types && \
- diff -u types.names.txt types.names.ref.txt && \
- diff_xml TypesComponent \
- Types_AArray \
- Types_EEnum \
- Types_SSerializable \
- Types_AUseArray \
- Types_EUseArray \
- Types_SUseArray \
- Types_TUseArray
-}
diff --git a/compiler/tools/fpp-to-xml/test/component/special_ports.fpp b/compiler/tools/fpp-to-xml/test/component/special_ports.fpp
deleted file mode 100644
index 27ea3f0ad..000000000
--- a/compiler/tools/fpp-to-xml/test/component/special_ports.fpp
+++ /dev/null
@@ -1,24 +0,0 @@
-module M {
-
- passive component SpecialPorts {
-
- command recv port cmdIn
- command reg port cmdRegOut
- command resp port cmdResponseOut
-
- event port eventOut
- text event port textEventOut
-
- param get port paramGetOut
- param set port paramSetOut
-
- telemetry port tlmOut
-
- product get port productGetOut
- product request port productRequestOut
- sync product recv port productRecvIn
- product send port productSendOut
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/component/special_ports.ref.txt b/compiler/tools/fpp-to-xml/test/component/special_ports.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/component/telemetry.fpp b/compiler/tools/fpp-to-xml/test/component/telemetry.fpp
deleted file mode 100644
index 37690a60e..000000000
--- a/compiler/tools/fpp-to-xml/test/component/telemetry.fpp
+++ /dev/null
@@ -1,16 +0,0 @@
-passive component Telemetry {
-
- telemetry port tlmOut
-
- time get port timeGetOut
-
- @ Channel C1
- telemetry C1: U32
- telemetry C2: U32 format "{}"
- telemetry C3: U32 update on change
- telemetry C4: string
- telemetry C5: I32 \
- low { red -3, orange -2, yellow -1 } \
- high { red 3, orange 2, yellow 1 }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/component/telemetry.ref.txt b/compiler/tools/fpp-to-xml/test/component/telemetry.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/component/tests.sh b/compiler/tools/fpp-to-xml/test/component/tests.sh
deleted file mode 100644
index a7e46817f..000000000
--- a/compiler/tools/fpp-to-xml/test/component/tests.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-tests="
-commands
-empty
-events
-general_ports
-internal_ports
-parameters
-ports
-product_recv_port_async
-product_recv_port_guarded
-special_ports
-telemetry
-types
-"
diff --git a/compiler/tools/fpp-to-xml/test/component/types.fpp b/compiler/tools/fpp-to-xml/test/component/types.fpp
deleted file mode 100644
index da03a0710..000000000
--- a/compiler/tools/fpp-to-xml/test/component/types.fpp
+++ /dev/null
@@ -1,20 +0,0 @@
-module M {
-
- passive component Types {
-
- array A = [3] U32
-
- enum E { X }
-
- struct S { x: U32, y: F32 }
-
- type T
-
- array AUse = [3] Types.A
- array EUse = [3] Types.E
- array SUse = [3] Types.S
- array TUse = [3] Types.T
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/component/types.names.ref.txt b/compiler/tools/fpp-to-xml/test/component/types.names.ref.txt
deleted file mode 100644
index 78b719ab8..000000000
--- a/compiler/tools/fpp-to-xml/test/component/types.names.ref.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-TypesComponentAi.xml
-Types_AArrayAi.xml
-Types_AUseArrayAi.xml
-Types_EEnumAi.xml
-Types_EUseArrayAi.xml
-Types_SSerializableAi.xml
-Types_SUseArrayAi.xml
-Types_TUseArrayAi.xml
diff --git a/compiler/tools/fpp-to-xml/test/component/types.ref.txt b/compiler/tools/fpp-to-xml/test/component/types.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/component/update-ref b/compiler/tools/fpp-to-xml/test/component/update-ref
deleted file mode 100755
index c905604d4..000000000
--- a/compiler/tools/fpp-to-xml/test/component/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/component/update-ref.sh b/compiler/tools/fpp-to-xml/test/component/update-ref.sh
deleted file mode 100644
index 805c13087..000000000
--- a/compiler/tools/fpp-to-xml/test/component/update-ref.sh
+++ /dev/null
@@ -1,85 +0,0 @@
-commands()
-{
- update "-p $PWD -i ports.fpp" commands
- move_xml CommandsComponent
-}
-
-empty()
-{
- update "-p $PWD" empty
- move_xml EmptyComponent
-}
-
-events()
-{
- update "-p $PWD -i ports.fpp" events
- move_xml EventsComponent
-}
-
-general_ports()
-{
- update "-p $PWD -i ports.fpp" general_ports
- move_xml GeneralPorts1Component GeneralPorts2Component
-}
-
-internal_ports()
-{
- update "-p $PWD -i ports.fpp" internal_ports
- move_xml InternalPortsComponent
-}
-
-parameters()
-{
- update "-p $PWD -i ports.fpp" parameters
- move_xml ParametersComponent
-}
-
-ports()
-{
- update "-p $PWD" ports
- move_xml PPort \
- CmdPort CmdRegPort CmdResponsePort \
- DpGetPort DpRequestPort DpResponsePort DpSendPort \
- LogPort LogTextPort \
- PrmGetPort PrmSetPort \
- TimePort \
- TlmPort
-}
-
-product_recv_port_async()
-{
- update "-p $PWD -i ports.fpp" product_recv_port_async
- move_xml ProductRecvPortAsyncComponent
-}
-
-product_recv_port_guarded()
-{
- update "-p $PWD -i ports.fpp" product_recv_port_guarded
- move_xml ProductRecvPortGuardedComponent
-}
-
-special_ports()
-{
- update "-p $PWD -i ports.fpp" special_ports
- move_xml SpecialPortsComponent
-}
-
-telemetry()
-{
- update "-p $PWD -i ports.fpp" telemetry
- move_xml TelemetryComponent
-}
-
-types()
-{
- update "-p $PWD -n types.names.txt" types
- mv types.names.txt types.names.ref.txt
- move_xml TypesComponent \
- Types_AArray \
- Types_EEnum \
- Types_SSerializable \
- Types_AUseArray \
- Types_EUseArray \
- Types_SUseArray \
- Types_TUseArray
-}
diff --git a/compiler/tools/fpp-to-xml/test/enum/DefaultEnumAi.ref.xml b/compiler/tools/fpp-to-xml/test/enum/DefaultEnumAi.ref.xml
deleted file mode 100644
index 532754f4e..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/DefaultEnumAi.ref.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- An enum with a default value
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/enum/ExplicitEnumAi.ref.xml b/compiler/tools/fpp-to-xml/test/enum/ExplicitEnumAi.ref.xml
deleted file mode 100644
index 2fd75f685..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/ExplicitEnumAi.ref.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- An enum with explicit constant values
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/enum/ImplicitEnumAi.ref.xml b/compiler/tools/fpp-to-xml/test/enum/ImplicitEnumAi.ref.xml
deleted file mode 100644
index 0d951423a..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/ImplicitEnumAi.ref.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- An enum with implicit constant values
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/enum/SerializeTypeEnumAi.ref.xml b/compiler/tools/fpp-to-xml/test/enum/SerializeTypeEnumAi.ref.xml
deleted file mode 100644
index 4d2a6e357..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/SerializeTypeEnumAi.ref.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
- An enum with serialize type specified
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/enum/check-xml b/compiler/tools/fpp-to-xml/test/enum/check-xml
deleted file mode 100755
index 74b10a394..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../..
-
-sh ../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/enum/clean b/compiler/tools/fpp-to-xml/test/enum/clean
deleted file mode 100755
index 5a2a7feb8..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/enum/default.fpp b/compiler/tools/fpp-to-xml/test/enum/default.fpp
deleted file mode 100644
index b80369d9d..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/default.fpp
+++ /dev/null
@@ -1,9 +0,0 @@
-module M {
-
- @ An enum with a default value
- enum Default {
- X @< Member X
- Y
- } default Y
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/enum/default.ref.txt b/compiler/tools/fpp-to-xml/test/enum/default.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/enum/explicit.fpp b/compiler/tools/fpp-to-xml/test/enum/explicit.fpp
deleted file mode 100644
index c5e64a90d..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/explicit.fpp
+++ /dev/null
@@ -1,9 +0,0 @@
-module M {
-
- @ An enum with explicit constant values
- enum Explicit : U8 {
- X = 1 @< Member X
- Y = 2
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/enum/explicit.ref.txt b/compiler/tools/fpp-to-xml/test/enum/explicit.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/enum/implicit.fpp b/compiler/tools/fpp-to-xml/test/enum/implicit.fpp
deleted file mode 100644
index ccb4ad353..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/implicit.fpp
+++ /dev/null
@@ -1,9 +0,0 @@
-module M {
-
- @ An enum with implicit constant values
- enum Implicit {
- X @< Member X
- Y
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/enum/implicit.ref.txt b/compiler/tools/fpp-to-xml/test/enum/implicit.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/enum/run b/compiler/tools/fpp-to-xml/test/enum/run
deleted file mode 100755
index bf6f79f51..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/enum/run.sh b/compiler/tools/fpp-to-xml/test/enum/run.sh
deleted file mode 100644
index 2050a8527..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/run.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-default()
-{
- run_test '' default && \
- diff DefaultEnumAi.xml DefaultEnumAi.ref.xml
-}
-
-explicit()
-{
- run_test '' explicit && \
- diff ExplicitEnumAi.xml ExplicitEnumAi.ref.xml
-}
-
-implicit()
-{
- run_test '' implicit && \
- diff ImplicitEnumAi.xml ImplicitEnumAi.ref.xml
-}
-
-serialize_type()
-{
- run_test '' serialize_type && \
- diff SerializeTypeEnumAi.xml SerializeTypeEnumAi.ref.xml
-}
diff --git a/compiler/tools/fpp-to-xml/test/enum/serialize_type.fpp b/compiler/tools/fpp-to-xml/test/enum/serialize_type.fpp
deleted file mode 100644
index 6cf4eb3a9..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/serialize_type.fpp
+++ /dev/null
@@ -1,9 +0,0 @@
-module M {
-
- @ An enum with serialize type specified
- enum SerializeType : U8 {
- X @< Member X
- Y
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/enum/serialize_type.ref.txt b/compiler/tools/fpp-to-xml/test/enum/serialize_type.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/enum/tests.sh b/compiler/tools/fpp-to-xml/test/enum/tests.sh
deleted file mode 100644
index 0dd7b6601..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/tests.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-tests="
-default
-explicit
-implicit
-serialize_type
-"
diff --git a/compiler/tools/fpp-to-xml/test/enum/update-ref b/compiler/tools/fpp-to-xml/test/enum/update-ref
deleted file mode 100755
index c905604d4..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/enum/update-ref.sh b/compiler/tools/fpp-to-xml/test/enum/update-ref.sh
deleted file mode 100644
index 6adece43c..000000000
--- a/compiler/tools/fpp-to-xml/test/enum/update-ref.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-default()
-{
- update '' default
- mv DefaultEnumAi.xml DefaultEnumAi.ref.xml
-}
-
-explicit()
-{
- update '' explicit
- mv ExplicitEnumAi.xml ExplicitEnumAi.ref.xml
-}
-
-implicit()
-{
- update '' implicit
- mv ImplicitEnumAi.xml ImplicitEnumAi.ref.xml
-}
-
-serialize_type()
-{
- update '' serialize_type
- mv SerializeTypeEnumAi.xml SerializeTypeEnumAi.ref.xml
-}
diff --git a/compiler/tools/fpp-to-xml/test/port/A.fpp b/compiler/tools/fpp-to-xml/test/port/A.fpp
deleted file mode 100644
index 20ae848e0..000000000
--- a/compiler/tools/fpp-to-xml/test/port/A.fpp
+++ /dev/null
@@ -1,5 +0,0 @@
-module M {
-
- array A = [3] U32
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/port/A.ref.txt b/compiler/tools/fpp-to-xml/test/port/A.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/port/AArrayAi.ref.xml b/compiler/tools/fpp-to-xml/test/port/AArrayAi.ref.xml
deleted file mode 100644
index 37b31af78..000000000
--- a/compiler/tools/fpp-to-xml/test/port/AArrayAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- U32
- 3
- %u
-
- 0
- 0
- 0
-
-
diff --git a/compiler/tools/fpp-to-xml/test/port/E.fpp b/compiler/tools/fpp-to-xml/test/port/E.fpp
deleted file mode 100644
index 7894b887f..000000000
--- a/compiler/tools/fpp-to-xml/test/port/E.fpp
+++ /dev/null
@@ -1,5 +0,0 @@
-module M {
-
- enum E { A, B, C }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/port/E.ref.txt b/compiler/tools/fpp-to-xml/test/port/E.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/port/EEnumAi.ref.xml b/compiler/tools/fpp-to-xml/test/port/EEnumAi.ref.xml
deleted file mode 100644
index 39c6d17fd..000000000
--- a/compiler/tools/fpp-to-xml/test/port/EEnumAi.ref.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/port/PortKwdNamePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/port/PortKwdNamePortAi.ref.xml
deleted file mode 100644
index af6b93a9a..000000000
--- a/compiler/tools/fpp-to-xml/test/port/PortKwdNamePortAi.ref.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/port/PortOK1PortAi.ref.xml b/compiler/tools/fpp-to-xml/test/port/PortOK1PortAi.ref.xml
deleted file mode 100644
index 612085394..000000000
--- a/compiler/tools/fpp-to-xml/test/port/PortOK1PortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/port/PortOK2PortAi.ref.xml b/compiler/tools/fpp-to-xml/test/port/PortOK2PortAi.ref.xml
deleted file mode 100644
index d998f9310..000000000
--- a/compiler/tools/fpp-to-xml/test/port/PortOK2PortAi.ref.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
- Top-level comment
-
-
-
-
- Comment for parameter a
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/port/PortOK3PortAi.ref.xml b/compiler/tools/fpp-to-xml/test/port/PortOK3PortAi.ref.xml
deleted file mode 100644
index a4e0d7bda..000000000
--- a/compiler/tools/fpp-to-xml/test/port/PortOK3PortAi.ref.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/port/PortOK4PortAi.ref.xml b/compiler/tools/fpp-to-xml/test/port/PortOK4PortAi.ref.xml
deleted file mode 100644
index d8f6361a1..000000000
--- a/compiler/tools/fpp-to-xml/test/port/PortOK4PortAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- AArrayAi.xml
- EEnumAi.xml
- SSerializableAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/port/S.fpp b/compiler/tools/fpp-to-xml/test/port/S.fpp
deleted file mode 100644
index 2a49ffb8a..000000000
--- a/compiler/tools/fpp-to-xml/test/port/S.fpp
+++ /dev/null
@@ -1,5 +0,0 @@
-module M {
-
- struct S { x: U32, y: F32 }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/port/S.ref.txt b/compiler/tools/fpp-to-xml/test/port/S.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/port/SSerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/port/SSerializableAi.ref.xml
deleted file mode 100644
index 240d3b019..000000000
--- a/compiler/tools/fpp-to-xml/test/port/SSerializableAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
- 0
-
-
- 0.0f
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/port/check-xml b/compiler/tools/fpp-to-xml/test/port/check-xml
deleted file mode 100755
index 74b10a394..000000000
--- a/compiler/tools/fpp-to-xml/test/port/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../..
-
-sh ../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/port/clean b/compiler/tools/fpp-to-xml/test/port/clean
deleted file mode 100755
index 5a2a7feb8..000000000
--- a/compiler/tools/fpp-to-xml/test/port/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/port/port_kwd_name.fpp b/compiler/tools/fpp-to-xml/test/port/port_kwd_name.fpp
deleted file mode 100644
index df358d192..000000000
--- a/compiler/tools/fpp-to-xml/test/port/port_kwd_name.fpp
+++ /dev/null
@@ -1,8 +0,0 @@
-# Due to a bug in the F Prime autocoder, all ports must be
-# enclosed in modules
-
-module M {
-
- port PortKwdName(ref $time: U32)
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/port/port_kwd_name.ref.txt b/compiler/tools/fpp-to-xml/test/port/port_kwd_name.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/port/port_ok.fpp b/compiler/tools/fpp-to-xml/test/port/port_ok.fpp
deleted file mode 100644
index ae05e0887..000000000
--- a/compiler/tools/fpp-to-xml/test/port/port_ok.fpp
+++ /dev/null
@@ -1,29 +0,0 @@
-# Due to a bug in the F Prime autocoder, all ports must be
-# enclosed in modules
-
-locate type M.E at "E.fpp"
-locate type M.A at "A.fpp"
-locate type M.S at "S.fpp"
-
-module M {
-
- port PortOK1
-
- @ Top-level comment
- port PortOK2(
- @ Comment for parameter a
- a: U32
- )
-
- port PortOK3(
- a: U32
- ref b: string size 40
- ) -> F32
-
- port PortOK4(
- ref a: A
- ref s: S
- ref e: E
- )
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/port/port_ok.ref.txt b/compiler/tools/fpp-to-xml/test/port/port_ok.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/port/run b/compiler/tools/fpp-to-xml/test/port/run
deleted file mode 100755
index bf6f79f51..000000000
--- a/compiler/tools/fpp-to-xml/test/port/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/port/run.sh b/compiler/tools/fpp-to-xml/test/port/run.sh
deleted file mode 100644
index 8f79ffb03..000000000
--- a/compiler/tools/fpp-to-xml/test/port/run.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-fpp_depend=../../../../bin/fpp-depend
-
-port_kwd_name()
-{
- run_test "-p $PWD" port_kwd_name && \
- diff_xml PortKwdNamePort
-}
-
-port_ok()
-{
- files=""
- for i in `seq 1 4`; do files="$files PortOK${i}Port"; done
- run_test "-i `$fpp_depend port_ok.fpp | tr '\n' ','` -p $PWD" port_ok && \
- diff_xml $files
-}
-
-types()
-{
- for file in A E S
- do
- run_test "-p $PWD" $file
- done
-}
-
diff --git a/compiler/tools/fpp-to-xml/test/port/tests.sh b/compiler/tools/fpp-to-xml/test/port/tests.sh
deleted file mode 100644
index e1401186c..000000000
--- a/compiler/tools/fpp-to-xml/test/port/tests.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-tests="
-port_kwd_name
-port_ok
-types
-"
diff --git a/compiler/tools/fpp-to-xml/test/port/update-ref b/compiler/tools/fpp-to-xml/test/port/update-ref
deleted file mode 100755
index c905604d4..000000000
--- a/compiler/tools/fpp-to-xml/test/port/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/port/update-ref.sh b/compiler/tools/fpp-to-xml/test/port/update-ref.sh
deleted file mode 100644
index d7985b3e3..000000000
--- a/compiler/tools/fpp-to-xml/test/port/update-ref.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-port_kwd_name()
-{
- update "-p $PWD" port_kwd_name
- move_xml PortKwdNamePort
-}
-
-port_ok()
-{
- update "-i `fpp-depend port_ok.fpp | tr '\n' ','` -p $PWD" port_ok
- move_xml PortOK1Port PortOK2Port PortOK3Port PortOK4Port
-}
-
-types()
-{
- for file in A E S
- do
- update "-p $PWD" $file
- done
- move_xml AArray EEnum SSerializable
-}
diff --git a/compiler/tools/fpp-to-xml/test/scripts/check-xml.sh b/compiler/tools/fpp-to-xml/test/scripts/check-xml.sh
deleted file mode 100644
index 2b62aa430..000000000
--- a/compiler/tools/fpp-to-xml/test/scripts/check-xml.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh -e
-
-# ----------------------------------------------------------------------
-# Compile ref XML files, to check them for validity
-# ----------------------------------------------------------------------
-
-pwd=$PWD
-
-fprime_codegen=$COMPILER_ROOT/scripts/fprime-codegen
-test_dir="$COMPILER_ROOT/tools/fpp-to-xml/test"
-
-files=`find . -name '*Ai.ref.xml'`
-
-for file in $files
-do
- dir=`dirname $file`
- base=`basename $file Ai.ref.xml`
- xml_file=$base'Ai.xml'
- echo "copying $file to $xml_file"
- cp $file $dir/$xml_file
-done
-
-for file in $files
-do
- dir=`dirname $file`
- base=`basename $file Ai.ref.xml`
- # Skip XML to C++ in cases where the F Prime Python autocoder is
- # broken
- var='SKIP_XML_FOR_'$base
- skip_xml_cmd='echo $'$var
- xml_file=$base'Ai.xml'
- if test -z "`eval $skip_xml_cmd`"
- then
- cd $dir
- echo "compiling $xml_file"
- $fprime_codegen $xml_file > /dev/null
- cd $pwd
- else
- echo "skipping $xml_file"
- fi
-done
diff --git a/compiler/tools/fpp-to-xml/test/scripts/clean.sh b/compiler/tools/fpp-to-xml/test/scripts/clean.sh
deleted file mode 100644
index 709953131..000000000
--- a/compiler/tools/fpp-to-xml/test/scripts/clean.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh -e
-
-. $COMPILER_ROOT/scripts/utils.sh
-
-clean
-rm -rf default-tests.sh default-update-ref.sh DefaultDict
-for file in `find . -name '*Ai.xml' -or -name '*Ac.*' -or -name '*.names.txt' -or -name '*.csv'`
-do
- rm $file
-done
diff --git a/compiler/tools/fpp-to-xml/test/scripts/run.sh b/compiler/tools/fpp-to-xml/test/scripts/run.sh
deleted file mode 100644
index 84b6699a4..000000000
--- a/compiler/tools/fpp-to-xml/test/scripts/run.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-
-. $COMPILER_ROOT/scripts/test-utils.sh
-
-fpp_to_xml=$COMPILER_ROOT/bin/fpp-to-xml
-
-compare()
-{
- outfile=$1
- diff -u $outfile.ref.txt $outfile.out.txt > $outfile.diff.txt 2>&1
-}
-
-run_test()
-{
- args=$1
- infile=$2
- if test -n "$3"
- then
- outfile=$3
- else
- outfile=$infile
- fi
- $fpp_to_xml $args $infile.fpp 2>&1 | remove_path_prefix > $outfile.out.txt
- compare $outfile
-}
-
-. ./tests.sh
-
-# Default tests
-for t in $tests
-do
- echo "
-$t()
-{
- run_test '-p '$PWD $t
-}"
-done > default-tests.sh
-. ./default-tests.sh
-
-diff_xml()
-{
- for file in $@
- do
- if ! diff $file'Ai.xml' $file'Ai.ref.xml'
- then
- return 1
- fi
- done
-}
-
-. ./run.sh
-
-run_suite $tests
diff --git a/compiler/tools/fpp-to-xml/test/scripts/update-ref.sh b/compiler/tools/fpp-to-xml/test/scripts/update-ref.sh
deleted file mode 100644
index 913fbd16f..000000000
--- a/compiler/tools/fpp-to-xml/test/scripts/update-ref.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-
-. $COMPILER_ROOT/scripts/test-utils.sh
-
-fpp_to_xml=$COMPILER_ROOT/bin/fpp-to-xml
-fpp_depend=$COMPILER_ROOT/bin/fpp-depend
-
-update()
-{
- args=$1
- infile=$2
- if test -n "$3"
- then
- outfile=$3
- else
- outfile=$infile
- fi
- $fpp_to_xml $args $infile.fpp 2>&1 | remove_path_prefix > $outfile.ref.txt
-}
-
-for file in `find . -maxdepth 1 -name '*.ref.txt'`
-do
- rm $file
-done
-
-. ./tests.sh
-
-# Default update ref
-for t in $tests
-do
- echo "
-$t()
-{
- update '-p '$PWD $t
-}"
-done > default-update-ref.sh
-. ./default-update-ref.sh
-
-move_xml()
-{
- for file in $@
- do
- mv $file'Ai.xml' $file'Ai.ref.xml'
- done
-}
-
-. ./update-ref.sh
-
-for t in $tests
-do
- echo "updating ref output for $t"
- $t
-done
diff --git a/compiler/tools/fpp-to-xml/test/struct/EEnumAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/EEnumAi.ref.xml
deleted file mode 100644
index 48ca9d532..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/EEnumAi.ref.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/IncludedSerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/IncludedSerializableAi.ref.xml
deleted file mode 100644
index 21ed29db5..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/IncludedSerializableAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
- 0
-
-
- 0.0f
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/IncludingSerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/IncludingSerializableAi.ref.xml
deleted file mode 100644
index 1e00d9570..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/IncludingSerializableAi.ref.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- IncludedSerializableAi.xml
-
-
- M::Included(0, 0.0f)
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/StructAbsTypeSerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/StructAbsTypeSerializableAi.ref.xml
deleted file mode 100644
index cf4ccade7..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/StructAbsTypeSerializableAi.ref.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- T.hpp
-
-
- T()
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/StructDefaultSerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/StructDefaultSerializableAi.ref.xml
deleted file mode 100644
index 7038b83af..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/StructDefaultSerializableAi.ref.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
- 54
-
-
- Fw::String("hello")
-
-
- 0.0
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/StructEnumMemberSerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/StructEnumMemberSerializableAi.ref.xml
deleted file mode 100644
index 14e3b854d..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/StructEnumMemberSerializableAi.ref.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- EEnumAi.xml
-
-
- M::E::X
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/StructFormatSerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/StructFormatSerializableAi.ref.xml
deleted file mode 100644
index be1ac6e18..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/StructFormatSerializableAi.ref.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0.0f
-
-
- 0.0f
-
-
- 0.0f
-
-
- 0.0f
-
-
- 0.0f
-
-
- 0.0f
-
-
- 0.0f
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/StructModules1SerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/StructModules1SerializableAi.ref.xml
deleted file mode 100644
index ba40f0ca5..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/StructModules1SerializableAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
- 0
-
-
- 0.0f
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/StructModules2SerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/StructModules2SerializableAi.ref.xml
deleted file mode 100644
index 016f7e152..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/StructModules2SerializableAi.ref.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- StructModules1SerializableAi.xml
-
-
- M::StructModules1(0, 0.0f)
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/StructModules3SerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/StructModules3SerializableAi.ref.xml
deleted file mode 100644
index b2a106dc7..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/StructModules3SerializableAi.ref.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- StructModules1SerializableAi.xml
-
-
- M::StructModules1(0, 0.0f)
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/StructOK1SerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/StructOK1SerializableAi.ref.xml
deleted file mode 100644
index ef63c1650..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/StructOK1SerializableAi.ref.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
-
- Top-level annotation, line 1
- Top-level annotation, line 2
-
-
-
- 0.0f
-
-
- 0.0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- false
-
-
- Fw::String("")
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/StructOK2SerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/StructOK2SerializableAi.ref.xml
deleted file mode 100644
index 5165f9931..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/StructOK2SerializableAi.ref.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- StructOK1SerializableAi.xml
-
-
- StructOK1(0.0f, 0.0, 0, 0, 0, 0, 0, 0, 0, 0, false, Fw::String(""))
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/StructStringArraySerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/StructStringArraySerializableAi.ref.xml
deleted file mode 100644
index 452a30d78..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/StructStringArraySerializableAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
- Fw::String("")
-
-
- Fw::String("")
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/StructStringSerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/StructStringSerializableAi.ref.xml
deleted file mode 100644
index 5219351f3..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/StructStringSerializableAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
- Fw::String("hello")
-
-
- Fw::String("")
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/check-xml b/compiler/tools/fpp-to-xml/test/struct/check-xml
deleted file mode 100755
index 74b10a394..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../..
-
-sh ../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/struct/clean b/compiler/tools/fpp-to-xml/test/struct/clean
deleted file mode 100755
index 5a2a7feb8..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/struct/duplicate_xml_file.fpp b/compiler/tools/fpp-to-xml/test/struct/duplicate_xml_file.fpp
deleted file mode 100644
index cb6c3ffa2..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/duplicate_xml_file.fpp
+++ /dev/null
@@ -1,5 +0,0 @@
-module M {
- struct S { x: U32 }
-}
-
-struct S { x: U32 }
diff --git a/compiler/tools/fpp-to-xml/test/struct/duplicate_xml_file.ref.txt b/compiler/tools/fpp-to-xml/test/struct/duplicate_xml_file.ref.txt
deleted file mode 100644
index 66fbcc3f5..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/duplicate_xml_file.ref.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-fpp-to-xml
-[ local path prefix ]/tools/fpp-to-xml/test/struct/duplicate_xml_file.fpp:5.1
-struct S { x: U32 }
-^
-error: duplicate XML file SSerializableAi.xml
-previous file would be generated here:
-[ local path prefix ]/tools/fpp-to-xml/test/struct/duplicate_xml_file.fpp:2.3
- struct S { x: U32 }
- ^
diff --git a/compiler/tools/fpp-to-xml/test/struct/empty_struct.fpp b/compiler/tools/fpp-to-xml/test/struct/empty_struct.fpp
deleted file mode 100644
index 3a1807ae1..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/empty_struct.fpp
+++ /dev/null
@@ -1 +0,0 @@
-struct S { }
diff --git a/compiler/tools/fpp-to-xml/test/struct/empty_struct.ref.txt b/compiler/tools/fpp-to-xml/test/struct/empty_struct.ref.txt
deleted file mode 100644
index 952b42592..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/empty_struct.ref.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-fpp-to-xml
-[ local path prefix ]/tools/fpp-to-xml/test/struct/empty_struct.fpp:1.1
-struct S { }
-^
-error: cannot write XML for an empty struct
diff --git a/compiler/tools/fpp-to-xml/test/struct/enum.fpp b/compiler/tools/fpp-to-xml/test/struct/enum.fpp
deleted file mode 100644
index b94a332d8..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/enum.fpp
+++ /dev/null
@@ -1,8 +0,0 @@
-module M {
-
- enum E {
- X = 1
- Y = 2
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/struct/enum.ref.txt b/compiler/tools/fpp-to-xml/test/struct/enum.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/struct/include.fpp b/compiler/tools/fpp-to-xml/test/struct/include.fpp
deleted file mode 100644
index 27331717f..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/include.fpp
+++ /dev/null
@@ -1,7 +0,0 @@
-module M {
-
- include "include/included.fppi"
-
- struct Including { x: Included }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/struct/include.ref.txt b/compiler/tools/fpp-to-xml/test/struct/include.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/struct/include/included.fppi b/compiler/tools/fpp-to-xml/test/struct/include/included.fppi
deleted file mode 100644
index 2f3bfc4fc..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/include/included.fppi
+++ /dev/null
@@ -1 +0,0 @@
-struct Included { x: U32, y: F32 }
diff --git a/compiler/tools/fpp-to-xml/test/struct/output_dir/StructOutputDirSerializableAi.ref.xml b/compiler/tools/fpp-to-xml/test/struct/output_dir/StructOutputDirSerializableAi.ref.xml
deleted file mode 100644
index 56fccfabf..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/output_dir/StructOutputDirSerializableAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
- 0
-
-
- 0.0f
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/output_dir/struct_output_dir.fpp b/compiler/tools/fpp-to-xml/test/struct/output_dir/struct_output_dir.fpp
deleted file mode 100644
index 7cbe814be..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/output_dir/struct_output_dir.fpp
+++ /dev/null
@@ -1,4 +0,0 @@
-struct StructOutputDir {
- a: U32
- b: F32
-}
diff --git a/compiler/tools/fpp-to-xml/test/struct/output_dir/struct_output_dir.ref.txt b/compiler/tools/fpp-to-xml/test/struct/output_dir/struct_output_dir.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/struct/run b/compiler/tools/fpp-to-xml/test/struct/run
deleted file mode 100755
index bf6f79f51..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/struct/run.sh b/compiler/tools/fpp-to-xml/test/struct/run.sh
deleted file mode 100644
index 65c288b1a..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/run.sh
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/bin/sh
-
-. ../../../../scripts/test-utils.sh
-
-fpp_to_xml=../../../../bin/fpp-to-xml
-
-compare()
-{
- outfile=$1
- diff -u $outfile.ref.txt $outfile.out.txt > $outfile.diff.txt 2>&1
-}
-
-run_test()
-{
- args=$1
- infile=$2
- if test -n "$3"
- then
- outfile=$3
- else
- outfile=$infile
- fi
- $fpp_to_xml $args $infile.fpp 2>&1 | remove_path_prefix > $outfile.out.txt
- compare $outfile
-}
-
-. ./tests.sh
-
-# Default tests
-for t in $tests
-do
- echo "
-$t()
-{
- run_test '-p '$PWD $t
-}"
-done > default-tests.sh
-. ./default-tests.sh
-
-diff_xml()
-{
- for file in $@
- do
- if ! diff $file'Ai.xml' $file'Ai.ref.xml'
- then
- return 1
- fi
- done
-}
-
-enum()
-{
- run_test '' enum && \
- diff EEnumAi.xml EEnumAi.ref.xml
-}
-
-include()
-{
- run_test "-p $PWD" include && \
- diff IncludedSerializableAi.xml IncludedSerializableAi.ref.xml && \
- diff IncludingSerializableAi.xml IncludingSerializableAi.ref.xml
-}
-
-struct_abs_type()
-{
- run_test "-p $PWD" struct_abs_type && \
- diff -u StructAbsTypeSerializableAi.xml StructAbsTypeSerializableAi.ref.xml
-}
-
-struct_default()
-{
- run_test "-p $PWD" struct_default && \
- diff -u StructDefaultSerializableAi.xml StructDefaultSerializableAi.ref.xml
-}
-
-struct_enum_member()
-{
- run_test "-i enum.fpp -p $PWD" struct_enum_member && \
- diff -u StructEnumMemberSerializableAi.xml StructEnumMemberSerializableAi.ref.xml
-}
-
-struct_ok()
-{
- run_test "-n struct_ok.names.txt -p $PWD" struct_ok && \
- diff -u struct_ok.names.txt struct_ok.names.ref.txt && \
- diff -u StructOK1SerializableAi.xml StructOK1SerializableAi.ref.xml && \
- diff -u StructOK2SerializableAi.xml StructOK2SerializableAi.ref.xml
-}
-
-struct_format()
-{
- run_test '' struct_format && \
- diff StructFormatSerializableAi.xml StructFormatSerializableAi.ref.xml
-}
-
-struct_modules()
-{
- run_test "-p $PWD" struct_modules && \
- diff StructModules1SerializableAi.xml StructModules1SerializableAi.ref.xml && \
- diff StructModules2SerializableAi.xml StructModules2SerializableAi.ref.xml && \
- diff StructModules3SerializableAi.xml StructModules3SerializableAi.ref.xml
-}
-
-struct_output_dir()
-{
- run_test '-d output_dir' output_dir/struct_output_dir && \
- diff output_dir/StructOutputDirSerializableAi.xml output_dir/StructOutputDirSerializableAi.ref.xml
-}
-
-struct_string()
-{
- run_test '' struct_string && \
- diff StructStringSerializableAi.xml StructStringSerializableAi.ref.xml
-}
-
-struct_string_array()
-{
- run_test '' struct_string_array && \
- diff StructStringArraySerializableAi.xml StructStringArraySerializableAi.ref.xml
-}
-
-run_suite $tests
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_abs_type.fpp b/compiler/tools/fpp-to-xml/test/struct/struct_abs_type.fpp
deleted file mode 100644
index 1cbfc3f08..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/struct_abs_type.fpp
+++ /dev/null
@@ -1,2 +0,0 @@
-type T
-struct StructAbsType { t: T }
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_abs_type.ref.txt b/compiler/tools/fpp-to-xml/test/struct/struct_abs_type.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_default.fpp b/compiler/tools/fpp-to-xml/test/struct/struct_default.fpp
deleted file mode 100644
index fa6f8d3d2..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/struct_default.fpp
+++ /dev/null
@@ -1,5 +0,0 @@
-struct StructDefault {
- mU32: U32
- mS1: string size 40
- mF64: F64
-} default {mU32 = 54, mS1 = "hello"}
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_default.ref.txt b/compiler/tools/fpp-to-xml/test/struct/struct_default.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_enum_member.fpp b/compiler/tools/fpp-to-xml/test/struct/struct_enum_member.fpp
deleted file mode 100644
index bf33ade6d..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/struct_enum_member.fpp
+++ /dev/null
@@ -1,5 +0,0 @@
-struct StructEnumMember {
-
- e: M.E
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_enum_member.ref.txt b/compiler/tools/fpp-to-xml/test/struct/struct_enum_member.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_format.fpp b/compiler/tools/fpp-to-xml/test/struct/struct_format.fpp
deleted file mode 100644
index 9fc20710f..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/struct_format.fpp
+++ /dev/null
@@ -1,19 +0,0 @@
-struct StructFormat {
- m1: I32 format "{}"
- m2: U32 format "{}"
- m3: I32 format "{d}"
- m4: U32 format "{d}"
- m5: I32 format "{x}"
- m6: U32 format "{x}"
- m7: I32 format "{c}"
- m8: U32 format "{c}"
- m9: I32 format "{o}"
- m10: U32 format "{o}"
- m11: F32 format "{e}"
- m12: F32 format "{f}"
- m13: F32 format "{g}"
- m14: F32 format "{.3e}"
- m15: F32 format "{.3f}"
- m16: F32 format "{.3g}"
- m17: F32 format "{.3g}%"
-}
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_format.ref.txt b/compiler/tools/fpp-to-xml/test/struct/struct_format.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_modules.fpp b/compiler/tools/fpp-to-xml/test/struct/struct_modules.fpp
deleted file mode 100644
index bc4692d61..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/struct_modules.fpp
+++ /dev/null
@@ -1,13 +0,0 @@
-module M {
- struct StructModules1 {
- x: U32
- y: F32
- }
- struct StructModules2 {
- x: M.StructModules1
- }
-}
-
-struct StructModules3 {
- x: M.StructModules1
-}
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_modules.ref.txt b/compiler/tools/fpp-to-xml/test/struct/struct_modules.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_ok.fpp b/compiler/tools/fpp-to-xml/test/struct/struct_ok.fpp
deleted file mode 100644
index 8fe0e11aa..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/struct_ok.fpp
+++ /dev/null
@@ -1,22 +0,0 @@
-@ Top-level annotation, line 1
-@ Top-level annotation, line 2
-struct StructOK1 {
- @ Member annotation, line 1.
- @ Member annotation, line 2.
- mF32: [3] F32
- mF64: F64
- mI16: I16
- mI32: I32
- mI64: I64
- mI8: I8
- mU16: U16
- mU32: U32
- mU64: U64
- mU8: U8
- m_bool: bool
- m_string: string
-}
-
-struct StructOK2 {
- s1: StructOK1
-}
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_ok.names.ref.txt b/compiler/tools/fpp-to-xml/test/struct/struct_ok.names.ref.txt
deleted file mode 100644
index 8be2edadb..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/struct_ok.names.ref.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-StructOK1SerializableAi.xml
-StructOK2SerializableAi.xml
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_ok.ref.txt b/compiler/tools/fpp-to-xml/test/struct/struct_ok.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_string.fpp b/compiler/tools/fpp-to-xml/test/struct/struct_string.fpp
deleted file mode 100644
index a88d3a3e8..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/struct_string.fpp
+++ /dev/null
@@ -1,4 +0,0 @@
-struct StructString {
- s1: string
- s2: string size 40
-} default {s1 = "hello"}
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_string.ref.txt b/compiler/tools/fpp-to-xml/test/struct/struct_string.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_string_array.fpp b/compiler/tools/fpp-to-xml/test/struct/struct_string_array.fpp
deleted file mode 100644
index 3021040f5..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/struct_string_array.fpp
+++ /dev/null
@@ -1,4 +0,0 @@
-struct StructStringArray {
- s1: string
- s2: [16] string size 40
-}
diff --git a/compiler/tools/fpp-to-xml/test/struct/struct_string_array.ref.txt b/compiler/tools/fpp-to-xml/test/struct/struct_string_array.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/struct/tests.sh b/compiler/tools/fpp-to-xml/test/struct/tests.sh
deleted file mode 100644
index e50ffc8ac..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/tests.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-tests="
-duplicate_xml_file
-empty_struct
-enum
-include
-struct_abs_type
-struct_default
-struct_enum_member
-struct_format
-struct_modules
-struct_ok
-struct_output_dir
-struct_string
-struct_string_array
-"
-
diff --git a/compiler/tools/fpp-to-xml/test/struct/update-ref b/compiler/tools/fpp-to-xml/test/struct/update-ref
deleted file mode 100755
index c905604d4..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/struct/update-ref.sh b/compiler/tools/fpp-to-xml/test/struct/update-ref.sh
deleted file mode 100644
index 50f2c3447..000000000
--- a/compiler/tools/fpp-to-xml/test/struct/update-ref.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/bin/sh
-
-enum()
-{
- update '' enum
- mv EEnumAi.xml EEnumAi.ref.xml
-}
-
-include()
-{
- update "-p $PWD" include
- mv IncludedSerializableAi.xml IncludedSerializableAi.ref.xml
- mv IncludingSerializableAi.xml IncludingSerializableAi.ref.xml
-}
-
-struct_abs_type()
-{
- update "-p $PWD" struct_abs_type
- mv StructAbsTypeSerializableAi.xml StructAbsTypeSerializableAi.ref.xml
-}
-
-struct_default()
-{
- update "-p $PWD" struct_default
- mv StructDefaultSerializableAi.xml StructDefaultSerializableAi.ref.xml
-}
-
-struct_enum_member()
-{
- update "-i enum.fpp -p $PWD" struct_enum_member
- mv StructEnumMemberSerializableAi.xml StructEnumMemberSerializableAi.ref.xml
-}
-
-struct_ok()
-{
- update "-n struct_ok.names.txt -p $PWD" struct_ok
- mv struct_ok.names.txt struct_ok.names.ref.txt
- mv StructOK1SerializableAi.xml StructOK1SerializableAi.ref.xml
- mv StructOK2SerializableAi.xml StructOK2SerializableAi.ref.xml
-}
-
-struct_format()
-{
- update '' struct_format
- mv StructFormatSerializableAi.xml StructFormatSerializableAi.ref.xml
-}
-
-struct_modules()
-{
- update "-p $PWD" struct_modules
- mv StructModules1SerializableAi.xml StructModules1SerializableAi.ref.xml
- mv StructModules2SerializableAi.xml StructModules2SerializableAi.ref.xml
- mv StructModules3SerializableAi.xml StructModules3SerializableAi.ref.xml
-}
-
-struct_output_dir()
-{
- update '-d output_dir' output_dir/struct_output_dir
- mv output_dir/StructOutputDirSerializableAi.xml output_dir/StructOutputDirSerializableAi.ref.xml
-}
-
-struct_string()
-{
- update '' struct_string
- mv StructStringSerializableAi.xml StructStringSerializableAi.ref.xml
-}
-
-struct_string_array()
-{
- update '' struct_string_array
- mv StructStringArraySerializableAi.xml StructStringArraySerializableAi.ref.xml
-}
diff --git a/compiler/tools/fpp-to-xml/test/test b/compiler/tools/fpp-to-xml/test/test
deleted file mode 100755
index 6df8509b5..000000000
--- a/compiler/tools/fpp-to-xml/test/test
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../..
-cd ..
-$COMPILER_ROOT/scripts/test
-mv num_failed.txt test-output.txt test
diff --git a/compiler/tools/fpp-to-xml/test/top_basic/C1ComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_basic/C1ComponentAi.ref.xml
deleted file mode 100644
index e28770502..000000000
--- a/compiler/tools/fpp-to-xml/test/top_basic/C1ComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_basic/C2ComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_basic/C2ComponentAi.ref.xml
deleted file mode 100644
index 87b478de7..000000000
--- a/compiler/tools/fpp-to-xml/test/top_basic/C2ComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_basic/PPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_basic/PPortAi.ref.xml
deleted file mode 100644
index 64b132daf..000000000
--- a/compiler/tools/fpp-to-xml/test/top_basic/PPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_basic/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_basic/TTopologyAppAi.ref.xml
deleted file mode 100644
index 430cbedf1..000000000
--- a/compiler/tools/fpp-to-xml/test/top_basic/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
- C1ComponentAi.xml
- C2ComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_basic/basic.fpp b/compiler/tools/fpp-to-xml/test/top_basic/basic.fpp
deleted file mode 100644
index 35805e2c5..000000000
--- a/compiler/tools/fpp-to-xml/test/top_basic/basic.fpp
+++ /dev/null
@@ -1,31 +0,0 @@
-module M {
-
- port P
-
- passive component C1 {
-
- output port pOut: P
-
- }
-
- passive component C2 {
-
- sync input port pIn: P
-
- }
-
- instance c1: C1 base id 0x100
- instance c2: C2 base id 0x200
-
- topology T {
-
- instance c1
- instance c2
-
- connections C {
- c1.pOut -> c2.pIn
- }
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_basic/basic.ref.txt b/compiler/tools/fpp-to-xml/test/top_basic/basic.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_basic/check-xml b/compiler/tools/fpp-to-xml/test/top_basic/check-xml
deleted file mode 100755
index 74b10a394..000000000
--- a/compiler/tools/fpp-to-xml/test/top_basic/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../..
-
-sh ../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_basic/clean b/compiler/tools/fpp-to-xml/test/top_basic/clean
deleted file mode 100755
index 5a2a7feb8..000000000
--- a/compiler/tools/fpp-to-xml/test/top_basic/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_basic/run b/compiler/tools/fpp-to-xml/test/top_basic/run
deleted file mode 100755
index bf6f79f51..000000000
--- a/compiler/tools/fpp-to-xml/test/top_basic/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_basic/run.sh b/compiler/tools/fpp-to-xml/test/top_basic/run.sh
deleted file mode 100644
index d4c97a982..000000000
--- a/compiler/tools/fpp-to-xml/test/top_basic/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-basic()
-{
- run_test "-p $PWD" basic && \
- diff_xml PPort C1Component C2Component TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_basic/tests.sh b/compiler/tools/fpp-to-xml/test/top_basic/tests.sh
deleted file mode 100644
index 81c8e56d7..000000000
--- a/compiler/tools/fpp-to-xml/test/top_basic/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-basic
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_basic/update-ref b/compiler/tools/fpp-to-xml/test/top_basic/update-ref
deleted file mode 100755
index c905604d4..000000000
--- a/compiler/tools/fpp-to-xml/test/top_basic/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../..
-
-sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_basic/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_basic/update-ref.sh
deleted file mode 100644
index ff0fb788d..000000000
--- a/compiler/tools/fpp-to-xml/test/top_basic/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-basic()
-{
- update "-p $PWD" basic
- move_xml PPort C1Component C2Component TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/basic/AComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/basic/AComponentAi.ref.xml
deleted file mode 100644
index 24cf81f22..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/basic/AComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/basic/BComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/basic/BComponentAi.ref.xml
deleted file mode 100644
index 0e42bfd32..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/basic/BComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/basic/PPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/basic/PPortAi.ref.xml
deleted file mode 100644
index 64b132daf..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/basic/PPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/basic/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/basic/TTopologyAppAi.ref.xml
deleted file mode 100644
index 4fbc5d39d..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/basic/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
- AComponentAi.xml
- BComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/basic/check-xml b/compiler/tools/fpp-to-xml/test/top_import/basic/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/basic/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/basic/clean b/compiler/tools/fpp-to-xml/test/top_import/basic/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/basic/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/basic/import_basic.fpp b/compiler/tools/fpp-to-xml/test/top_import/basic/import_basic.fpp
deleted file mode 100644
index c72ebc04f..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/basic/import_basic.fpp
+++ /dev/null
@@ -1,45 +0,0 @@
-module M {
-
- port P
-
- passive component A {
-
- output port pOut: P
-
- }
-
- passive component B {
-
- sync input port pIn: P
-
- }
-
- instance a1: A base id 0x100
- instance a2: A base id 0x200
-
- instance b: B base id 0x400
-
- topology S {
-
- instance a1
- instance b
-
- connections C1 {
- a1.pOut -> b.pIn
- }
-
- }
-
- topology T {
-
- import S
-
- instance a2
-
- connections C2 {
- a2.pOut -> b.pIn
- }
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/basic/import_basic.ref.txt b/compiler/tools/fpp-to-xml/test/top_import/basic/import_basic.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_import/basic/run b/compiler/tools/fpp-to-xml/test/top_import/basic/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/basic/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/basic/run.sh b/compiler/tools/fpp-to-xml/test/top_import/basic/run.sh
deleted file mode 100644
index 04b303f01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/basic/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-import_basic()
-{
- run_test "-p $PWD" import_basic && \
- diff_xml PPort AComponent BComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/basic/tests.sh b/compiler/tools/fpp-to-xml/test/top_import/basic/tests.sh
deleted file mode 100644
index ae722bc0d..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/basic/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-import_basic
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_import/basic/update-ref b/compiler/tools/fpp-to-xml/test/top_import/basic/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/basic/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/basic/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_import/basic/update-ref.sh
deleted file mode 100644
index 4a48b8a6e..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/basic/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-import_basic()
-{
- update "-p $PWD" import_basic
- move_xml PPort AComponent BComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/merge/AComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/merge/AComponentAi.ref.xml
deleted file mode 100644
index 377b55313..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/merge/AComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/merge/BComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/merge/BComponentAi.ref.xml
deleted file mode 100644
index 0e42bfd32..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/merge/BComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/merge/PPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/merge/PPortAi.ref.xml
deleted file mode 100644
index 64b132daf..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/merge/PPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/merge/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/merge/TTopologyAppAi.ref.xml
deleted file mode 100644
index 54eeccfe9..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/merge/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
- AComponentAi.xml
- BComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/merge/check-xml b/compiler/tools/fpp-to-xml/test/top_import/merge/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/merge/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/merge/clean b/compiler/tools/fpp-to-xml/test/top_import/merge/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/merge/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/merge/import_merge.fpp b/compiler/tools/fpp-to-xml/test/top_import/merge/import_merge.fpp
deleted file mode 100644
index 1aa6063c5..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/merge/import_merge.fpp
+++ /dev/null
@@ -1,46 +0,0 @@
-module M {
-
- port P
-
- passive component A {
-
- output port pOut: [2] P
-
- }
-
- passive component B {
-
- sync input port pIn: P
-
- }
-
- instance a1: A base id 0x100
- instance a2: A base id 0x200
-
- instance b: B base id 0x400
-
- topology S {
-
- instance a1
- instance b
-
- connections C {
- a1.pOut -> b.pIn
- }
-
- }
-
- topology T {
-
- import S
-
- instance a2
-
- connections C {
- a1.pOut -> b.pIn
- a2.pOut -> b.pIn
- }
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/merge/import_merge.ref.txt b/compiler/tools/fpp-to-xml/test/top_import/merge/import_merge.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_import/merge/run b/compiler/tools/fpp-to-xml/test/top_import/merge/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/merge/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/merge/run.sh b/compiler/tools/fpp-to-xml/test/top_import/merge/run.sh
deleted file mode 100644
index d8246e198..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/merge/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-import_merge()
-{
- run_test "-p $PWD" import_merge && \
- diff_xml PPort AComponent BComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/merge/tests.sh b/compiler/tools/fpp-to-xml/test/top_import/merge/tests.sh
deleted file mode 100644
index 9fef16b0f..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/merge/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-import_merge
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_import/merge/update-ref b/compiler/tools/fpp-to-xml/test/top_import/merge/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/merge/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/merge/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_import/merge/update-ref.sh
deleted file mode 100644
index 6fbd75f49..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/merge/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-import_merge()
-{
- update "-p $PWD" import_merge
- move_xml PPort AComponent BComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/pattern/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/pattern/CComponentAi.ref.xml
deleted file mode 100644
index 4b3969419..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/pattern/CComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- TimePortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/pattern/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/pattern/TTopologyAppAi.ref.xml
deleted file mode 100644
index e558667d3..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/pattern/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- TimeComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/pattern/TimeComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/pattern/TimeComponentAi.ref.xml
deleted file mode 100644
index d4868ee20..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/pattern/TimeComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- TimePortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/pattern/TimePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/pattern/TimePortAi.ref.xml
deleted file mode 100644
index b8e4ad60c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/pattern/TimePortAi.ref.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- Time.hpp
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/pattern/check-xml b/compiler/tools/fpp-to-xml/test/top_import/pattern/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/pattern/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/pattern/clean b/compiler/tools/fpp-to-xml/test/top_import/pattern/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/pattern/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/pattern/import_pattern.fpp b/compiler/tools/fpp-to-xml/test/top_import/pattern/import_pattern.fpp
deleted file mode 100644
index d80a8487f..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/pattern/import_pattern.fpp
+++ /dev/null
@@ -1,25 +0,0 @@
-module Fw {
- type Time
- port Time($time: Fw.Time)
-}
-module M {
- passive component Time {
- sync input port timeGetIn: Fw.Time
- }
- passive component C {
- time get port timeGetOut
- }
- instance $time: Time base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology S {
- instance $time
- instance c1
- time connections instance $time
- }
- topology T {
- import S
- instance c2
- time connections instance $time
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/pattern/import_pattern.ref.txt b/compiler/tools/fpp-to-xml/test/top_import/pattern/import_pattern.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_import/pattern/run b/compiler/tools/fpp-to-xml/test/top_import/pattern/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/pattern/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/pattern/run.sh b/compiler/tools/fpp-to-xml/test/top_import/pattern/run.sh
deleted file mode 100644
index f874aa2aa..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/pattern/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-import_pattern()
-{
- run_test "-p $PWD" import_pattern && \
- diff_xml TimePort TimeComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/pattern/tests.sh b/compiler/tools/fpp-to-xml/test/top_import/pattern/tests.sh
deleted file mode 100644
index b7afddfee..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/pattern/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-import_pattern
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_import/pattern/update-ref b/compiler/tools/fpp-to-xml/test/top_import/pattern/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/pattern/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/pattern/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_import/pattern/update-ref.sh
deleted file mode 100644
index 4be5583b5..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/pattern/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-import_pattern()
-{
- update "-p $PWD" import_pattern
- move_xml TimePort TimeComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/port_num/AComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/port_num/AComponentAi.ref.xml
deleted file mode 100644
index be2486912..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/port_num/AComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/port_num/BComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/port_num/BComponentAi.ref.xml
deleted file mode 100644
index 0e42bfd32..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/port_num/BComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/port_num/PPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/port_num/PPortAi.ref.xml
deleted file mode 100644
index 64b132daf..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/port_num/PPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/port_num/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/port_num/TTopologyAppAi.ref.xml
deleted file mode 100644
index 77bab649b..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/port_num/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
- AComponentAi.xml
- BComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/port_num/check-xml b/compiler/tools/fpp-to-xml/test/top_import/port_num/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/port_num/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/port_num/clean b/compiler/tools/fpp-to-xml/test/top_import/port_num/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/port_num/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/port_num/import_port_num.fpp b/compiler/tools/fpp-to-xml/test/top_import/port_num/import_port_num.fpp
deleted file mode 100644
index e9eb1b1e1..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/port_num/import_port_num.fpp
+++ /dev/null
@@ -1,46 +0,0 @@
-module M {
-
- port P
-
- passive component A {
-
- output port pOut: [3] P
-
- }
-
- passive component B {
-
- sync input port pIn: P
-
- }
-
- instance a1: A base id 0x100
- instance a2: A base id 0x200
-
- instance b: B base id 0x400
-
- topology S {
-
- instance a1
- instance b
-
- connections C {
- a1.pOut[2] -> b.pIn
- }
-
- }
-
- topology T {
-
- import S
-
- instance a2
-
- connections C {
- a1.pOut -> b.pIn
- a2.pOut -> b.pIn
- }
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/port_num/import_port_num.ref.txt b/compiler/tools/fpp-to-xml/test/top_import/port_num/import_port_num.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_import/port_num/run b/compiler/tools/fpp-to-xml/test/top_import/port_num/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/port_num/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/port_num/run.sh b/compiler/tools/fpp-to-xml/test/top_import/port_num/run.sh
deleted file mode 100644
index 261c561e0..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/port_num/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-import_port_num()
-{
- run_test "-p $PWD" import_port_num && \
- diff_xml PPort AComponent BComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/port_num/tests.sh b/compiler/tools/fpp-to-xml/test/top_import/port_num/tests.sh
deleted file mode 100644
index 8fd175d32..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/port_num/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-import_port_num
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_import/port_num/update-ref b/compiler/tools/fpp-to-xml/test/top_import/port_num/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/port_num/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/port_num/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_import/port_num/update-ref.sh
deleted file mode 100644
index 66a2017b9..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/port_num/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-import_port_num()
-{
- update "-p $PWD" import_port_num
- move_xml PPort AComponent BComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/private/AComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/private/AComponentAi.ref.xml
deleted file mode 100644
index 24cf81f22..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/private/AComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/private/BComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/private/BComponentAi.ref.xml
deleted file mode 100644
index 0e42bfd32..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/private/BComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/private/PPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/private/PPortAi.ref.xml
deleted file mode 100644
index 64b132daf..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/private/PPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/private/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/private/TTopologyAppAi.ref.xml
deleted file mode 100644
index 71b123939..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/private/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
- AComponentAi.xml
- BComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/private/check-xml b/compiler/tools/fpp-to-xml/test/top_import/private/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/private/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/private/clean b/compiler/tools/fpp-to-xml/test/top_import/private/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/private/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/private/import_private.fpp b/compiler/tools/fpp-to-xml/test/top_import/private/import_private.fpp
deleted file mode 100644
index 67fad487a..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/private/import_private.fpp
+++ /dev/null
@@ -1,45 +0,0 @@
-module M {
-
- port P
-
- passive component A {
-
- output port pOut: P
-
- }
-
- passive component B {
-
- sync input port pIn: P
-
- }
-
- instance a1: A base id 0x100
- instance a2: A base id 0x200
-
- instance b: B base id 0x400
-
- topology S {
-
- private instance a1
- instance b
-
- connections C {
- a1.pOut -> b.pIn
- }
-
- }
-
- topology T {
-
- import S
-
- instance a2
-
- connections C {
- a2.pOut -> b.pIn
- }
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/private/import_private.ref.txt b/compiler/tools/fpp-to-xml/test/top_import/private/import_private.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_import/private/run b/compiler/tools/fpp-to-xml/test/top_import/private/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/private/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/private/run.sh b/compiler/tools/fpp-to-xml/test/top_import/private/run.sh
deleted file mode 100644
index 5839e9fa9..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/private/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-import_private()
-{
- run_test "-p $PWD" import_private && \
- diff_xml PPort AComponent BComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/private/tests.sh b/compiler/tools/fpp-to-xml/test/top_import/private/tests.sh
deleted file mode 100644
index 556c322a9..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/private/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-import_private
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_import/private/update-ref b/compiler/tools/fpp-to-xml/test/top_import/private/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/private/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/private/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_import/private/update-ref.sh
deleted file mode 100644
index 9c3705325..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/private/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-import_private()
-{
- update "-p $PWD" import_private
- move_xml PPort AComponent BComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/transitive/AComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/transitive/AComponentAi.ref.xml
deleted file mode 100644
index 24cf81f22..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/transitive/AComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/transitive/BComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/transitive/BComponentAi.ref.xml
deleted file mode 100644
index 0e42bfd32..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/transitive/BComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/transitive/PPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/transitive/PPortAi.ref.xml
deleted file mode 100644
index 64b132daf..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/transitive/PPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/transitive/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_import/transitive/TTopologyAppAi.ref.xml
deleted file mode 100644
index 5732a028c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/transitive/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
- AComponentAi.xml
- BComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_import/transitive/check-xml b/compiler/tools/fpp-to-xml/test/top_import/transitive/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/transitive/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/transitive/clean b/compiler/tools/fpp-to-xml/test/top_import/transitive/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/transitive/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/transitive/import_transitive.fpp b/compiler/tools/fpp-to-xml/test/top_import/transitive/import_transitive.fpp
deleted file mode 100644
index 1a9469d0f..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/transitive/import_transitive.fpp
+++ /dev/null
@@ -1,42 +0,0 @@
-module M {
-
- port P
-
- passive component A {
-
- output port pOut: P
-
- }
-
- passive component B {
-
- sync input port pIn: P
-
- }
-
- instance a: A base id 0x100
- instance b: B base id 0x200
-
- topology A {
-
- instance a
- instance b
-
- connections C {
- a.pOut -> b.pIn
- }
-
- }
-
- topology B { import A }
-
- topology C { import A }
-
- topology T {
-
- import B
- import C
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/transitive/import_transitive.ref.txt b/compiler/tools/fpp-to-xml/test/top_import/transitive/import_transitive.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_import/transitive/run b/compiler/tools/fpp-to-xml/test/top_import/transitive/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/transitive/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/transitive/run.sh b/compiler/tools/fpp-to-xml/test/top_import/transitive/run.sh
deleted file mode 100644
index faa143369..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/transitive/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-import_transitive()
-{
- run_test "-p $PWD" import_transitive && \
- diff_xml PPort AComponent BComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_import/transitive/tests.sh b/compiler/tools/fpp-to-xml/test/top_import/transitive/tests.sh
deleted file mode 100644
index aa7847f56..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/transitive/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-import_transitive
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_import/transitive/update-ref b/compiler/tools/fpp-to-xml/test/top_import/transitive/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/transitive/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_import/transitive/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_import/transitive/update-ref.sh
deleted file mode 100644
index f94a8f0e9..000000000
--- a/compiler/tools/fpp-to-xml/test/top_import/transitive/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-import_transitive()
-{
- update "-p $PWD" import_transitive
- move_xml PPort AComponent BComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/general/PPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_numbering/general/PPortAi.ref.xml
deleted file mode 100644
index 64b132daf..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/general/PPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/general/SourceComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_numbering/general/SourceComponentAi.ref.xml
deleted file mode 100644
index 7d03374dd..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/general/SourceComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/general/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_numbering/general/TTopologyAppAi.ref.xml
deleted file mode 100644
index 0a630087a..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/general/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
- SourceComponentAi.xml
- TargetComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/general/TargetComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_numbering/general/TargetComponentAi.ref.xml
deleted file mode 100644
index e3bfc59c5..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/general/TargetComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/general/check-xml b/compiler/tools/fpp-to-xml/test/top_numbering/general/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/general/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/general/clean b/compiler/tools/fpp-to-xml/test/top_numbering/general/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/general/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/general/numbering_general.fpp b/compiler/tools/fpp-to-xml/test/top_numbering/general/numbering_general.fpp
deleted file mode 100644
index 53cb8a9dd..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/general/numbering_general.fpp
+++ /dev/null
@@ -1,33 +0,0 @@
-module M {
-
- port P
-
- passive component Source {
- output port pOut: [5] P
- }
-
- passive component Target {
- sync input port pIn: [2] P
- }
-
- instance source: Source base id 0x100
- instance target: Target base id 0x200
-
- topology T {
-
- instance source
- instance target
-
- connections C {
-
- source.pOut -> target.pIn
- source.pOut -> target.pIn
- source.pOut[1] -> target.pIn[1]
- source.pOut -> target.pIn
- source.pOut -> target.pIn
-
- }
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/general/numbering_general.ref.txt b/compiler/tools/fpp-to-xml/test/top_numbering/general/numbering_general.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/general/run b/compiler/tools/fpp-to-xml/test/top_numbering/general/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/general/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/general/run.sh b/compiler/tools/fpp-to-xml/test/top_numbering/general/run.sh
deleted file mode 100644
index 14dc1732e..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/general/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-numbering_general()
-{
- run_test "-p $PWD" numbering_general && \
- diff_xml PPort SourceComponent TargetComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/general/tests.sh b/compiler/tools/fpp-to-xml/test/top_numbering/general/tests.sh
deleted file mode 100644
index 2eaaae01a..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/general/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-numbering_general
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/general/update-ref b/compiler/tools/fpp-to-xml/test/top_numbering/general/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/general/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/general/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_numbering/general/update-ref.sh
deleted file mode 100644
index 32bc4e9b6..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/general/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-numbering_general()
-{
- update "-p $PWD" numbering_general
- move_xml PPort SourceComponent TargetComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/matched/PPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_numbering/matched/PPortAi.ref.xml
deleted file mode 100644
index 64b132daf..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/matched/PPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/matched/SourceComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_numbering/matched/SourceComponentAi.ref.xml
deleted file mode 100644
index b0f7a3669..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/matched/SourceComponentAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/matched/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_numbering/matched/TTopologyAppAi.ref.xml
deleted file mode 100644
index 3586bb2a3..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/matched/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
- SourceComponentAi.xml
- TargetComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/matched/TargetComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_numbering/matched/TargetComponentAi.ref.xml
deleted file mode 100644
index c1a8d7831..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/matched/TargetComponentAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- PPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/matched/check-xml b/compiler/tools/fpp-to-xml/test/top_numbering/matched/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/matched/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/matched/clean b/compiler/tools/fpp-to-xml/test/top_numbering/matched/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/matched/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/matched/numbering_matched.fpp b/compiler/tools/fpp-to-xml/test/top_numbering/matched/numbering_matched.fpp
deleted file mode 100644
index 86e39049d..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/matched/numbering_matched.fpp
+++ /dev/null
@@ -1,45 +0,0 @@
-module M {
-
- constant numPorts = 10
-
- port P
-
- passive component Source {
- sync input port pIn: [numPorts] P
- output port pOut: [numPorts] P
- match pIn with pOut
- }
-
- passive component Target {
- sync input port pIn: [numPorts] P
- output port pOut: [numPorts] P
- }
-
- instance source: Source base id 0x100
- instance target1: Target base id 0x200
- instance target2: Target base id 0x300
- instance target3: Target base id 0x400
-
- topology T {
-
- instance source
- instance target1
- instance target2
- instance target3
-
- connections C {
-
- source.pOut[1] -> target1.pIn
- target1.pOut -> source.pIn
-
- source.pOut -> target2.pIn
- target2.pOut -> source.pIn[2]
-
- source.pOut -> target3.pIn
- target3.pOut -> source.pIn
-
- }
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/matched/numbering_matched.ref.txt b/compiler/tools/fpp-to-xml/test/top_numbering/matched/numbering_matched.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/matched/run b/compiler/tools/fpp-to-xml/test/top_numbering/matched/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/matched/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/matched/run.sh b/compiler/tools/fpp-to-xml/test/top_numbering/matched/run.sh
deleted file mode 100644
index b6ac46b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/matched/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-numbering_matched()
-{
- run_test "-p $PWD" numbering_matched && \
- diff_xml PPort SourceComponent TargetComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/matched/tests.sh b/compiler/tools/fpp-to-xml/test/top_numbering/matched/tests.sh
deleted file mode 100644
index 2cada613c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/matched/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-numbering_matched
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/matched/update-ref b/compiler/tools/fpp-to-xml/test/top_numbering/matched/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/matched/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/matched/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_numbering/matched/update-ref.sh
deleted file mode 100644
index f29aa193b..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/matched/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-numbering_matched()
-{
- update "-p $PWD" numbering_matched
- move_xml PPort SourceComponent TargetComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/.gitignore b/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/.gitignore
deleted file mode 100644
index 4dd6f6e38..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-*.eps
-*.pdf
-Case*.txt
-Case*.xml
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/TTopologyAppAi.ref.xml
deleted file mode 100644
index a0e3fe21a..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
-
- SourceComponentAi.xml
- TargetComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/check-xml b/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/clean b/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/clean
deleted file mode 100755
index 4632eae13..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/clean
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
-for file in `find . -name 'Case*.txt' -or -name '*.eps' -or -name '*.pdf'`
-do
- rm $file
-done
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/gen-layout b/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/gen-layout
deleted file mode 100755
index 511cfd6c8..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/gen-layout
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh -e
-
-cases="
-Case1
-Case2
-Case3
-Case4
-Case5
-"
-
-fpl-extract-xml TTopologyAppAi.ref.xml
-for case_name in $cases
-do
- echo "[ $case_name ]"
- fpl-convert-xml $case_name.xml > $case_name.txt
- fpl-write-eps < $case_name.txt > $case_name.eps
- epspdf $case_name.eps
-done
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/numbering_unmatched.fpp b/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/numbering_unmatched.fpp
deleted file mode 100644
index 4a8a05735..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/numbering_unmatched.fpp
+++ /dev/null
@@ -1,119 +0,0 @@
-module M {
-
- constant numPorts = 5
-
- port P
-
- passive component Source {
-
- output port pOut: [numPorts] P
- sync input port pIn: [numPorts] P
-
- match pOut with pIn
-
- }
-
- passive component Target {
-
- output port pOut: [numPorts] P
- sync input port pIn: [numPorts] P
-
- }
-
- instance source1: Source base id 0x0100
- instance target11: Target base id 0x1100
-
- instance source2: Source base id 0x0200
- instance target21: Target base id 0x2100
-
- instance source3: Source base id 0x300
- instance target31: Source base id 0x3100
- instance target32: Source base id 0x3200
-
- instance source4: Source base id 0x400
- instance target41: Source base id 0x4100
- instance target42: Source base id 0x4200
-
- instance source5: Source base id 0x500
- instance target51: Source base id 0x5100
- instance target52: Source base id 0x5200
- instance target53: Source base id 0x5300
- instance target54: Source base id 0x5400
- instance target55: Source base id 0x5500
-
- topology T {
-
- # Case 1: Matching connections to the same target
-
- instance source1
- instance target11
-
- connections Case1 {
- unmatched source1.pOut[0] -> target11.pIn[0]
- unmatched target11.pOut[0] -> source1.pIn[0]
- unmatched source1.pOut[1] -> target11.pIn[1]
- unmatched target11.pOut[1] -> source1.pIn[1]
- }
-
- # Case 2: Non-matching connections to the same target
-
- instance source2
- instance target21
-
- connections Case2 {
- unmatched source2.pOut[0] -> target21.pIn[0]
- unmatched target21.pOut[0] -> source2.pIn[0]
- unmatched source2.pOut[1] -> target21.pIn[1]
- }
-
- # Case 3: Matching connections to different targets
-
- instance source3
- instance target31
- instance target32
-
- connections Case3 {
- unmatched source3.pOut[0] -> target31.pIn[0]
- unmatched target32.pOut[0] -> source3.pIn[0]
- }
-
- # Case 4: Non-matching connections to the same target
-
- instance source4
- instance target41
- instance target42
-
- connections Case4 {
- unmatched source4.pOut[0] -> target41.pIn[0]
- unmatched target42.pOut[1] -> source4.pIn[1]
- }
-
- # Case 5: Mixed matched and unmatched connections
-
- instance source5
- instance target51
- instance target52
- instance target53
- instance target54
- instance target55
-
- connections Case5 {
- # Matched connections with explicit numbering
- source5.pOut[0] -> target51.pIn
- target51.pOut -> source5.pIn[0]
- # Matched connections with implicit numbering at pOut
- source5.pOut -> target52.pIn
- target52.pOut -> source5.pIn[1]
- # Matched connections with implicit numbering at pIn
- source5.pOut[2] -> target53.pIn
- target53.pOut -> source5.pIn
- # Matched connections with implicit numbering on both sides
- source5.pOut -> target54.pIn
- target54.pOut -> source5.pIn
- # Unmatched connection
- unmatched source5.pOut -> target55.pIn
- }
-
- }
-
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/numbering_unmatched.ref.txt b/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/numbering_unmatched.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/run b/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/run.sh b/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/run.sh
deleted file mode 100644
index c33c1e04a..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-numbering_unmatched()
-{
- run_test "-p $PWD" numbering_unmatched && \
- diff_xml TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/tests.sh b/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/tests.sh
deleted file mode 100644
index 551560222..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-numbering_unmatched
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/update-ref b/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/update-ref.sh
deleted file mode 100644
index 6410a79cc..000000000
--- a/compiler/tools/fpp-to-xml/test/top_numbering/unmatched/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-numbering_unmatched()
-{
- update "-p $PWD" numbering_unmatched
- move_xml TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/command/CComponentAi.ref.xml
deleted file mode 100644
index 2eae8b939..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/CComponentAi.ref.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- CmdPortAi.xml
- CmdRegPortAi.xml
- CmdResponsePortAi.xml
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/CmdPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/command/CmdPortAi.ref.xml
deleted file mode 100644
index 1ba8c8dfc..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/CmdPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/CmdRegPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/command/CmdRegPortAi.ref.xml
deleted file mode 100644
index 932f7f8fb..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/CmdRegPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/CmdResponsePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/command/CmdResponsePortAi.ref.xml
deleted file mode 100644
index a26aa0476..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/CmdResponsePortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/CommandsComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/command/CommandsComponentAi.ref.xml
deleted file mode 100644
index 707afa909..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/CommandsComponentAi.ref.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- CmdPortAi.xml
- CmdRegPortAi.xml
- CmdResponsePortAi.xml
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/command/TTopologyAppAi.ref.xml
deleted file mode 100644
index 5a848646f..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- CommandsComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/command/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/clean b/compiler/tools/fpp-to-xml/test/top_pattern/command/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/pattern_command.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/command/pattern_command.fpp
deleted file mode 100644
index 26ce7a83d..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/pattern_command.fpp
+++ /dev/null
@@ -1,28 +0,0 @@
-module Fw {
- port Cmd
- port CmdReg
- port CmdResponse
-}
-module M {
- passive component Commands {
- sync input port cmdRegIn: [2] Fw.CmdReg
- output port cmdOut: [2] Fw.Cmd
- sync input port cmdResponseIn: [2] Fw.CmdResponse
- match cmdRegIn with cmdOut
- match cmdRegIn with cmdResponseIn
- }
- passive component C {
- command reg port cmdRegOut
- command recv port cmdIn
- command resp port cmdResponseOut
- }
- instance commands: Commands base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology T {
- instance commands
- instance c1
- instance c2
- command connections instance commands
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/pattern_command.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/command/pattern_command.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/run b/compiler/tools/fpp-to-xml/test/top_pattern/command/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/command/run.sh
deleted file mode 100644
index 3e775b2f5..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_command()
-{
- run_test "-p $PWD" pattern_command && \
- diff_xml CmdRegPort CmdResponsePort CommandsComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/command/tests.sh
deleted file mode 100644
index d38d3c81a..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_command
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/command/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/command/update-ref.sh
deleted file mode 100644
index 256cb3398..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_command()
-{
- update "-p $PWD" pattern_command
- move_xml CmdPort CmdRegPort CmdResponsePort CommandsComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CComponentAi.ref.xml
deleted file mode 100644
index 2eae8b939..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CComponentAi.ref.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- CmdPortAi.xml
- CmdRegPortAi.xml
- CmdResponsePortAi.xml
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CmdPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CmdPortAi.ref.xml
deleted file mode 100644
index 1ba8c8dfc..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CmdPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CmdRegPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CmdRegPortAi.ref.xml
deleted file mode 100644
index 932f7f8fb..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CmdRegPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CmdResponsePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CmdResponsePortAi.ref.xml
deleted file mode 100644
index a26aa0476..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CmdResponsePortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CommandsComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CommandsComponentAi.ref.xml
deleted file mode 100644
index 0d5f2b7bd..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/CommandsComponentAi.ref.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- CmdPortAi.xml
- CmdRegPortAi.xml
- CmdResponsePortAi.xml
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/TTopologyAppAi.ref.xml
deleted file mode 100644
index c1fcbfb96..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- CommandsComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/clean b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/pattern_command_list.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/pattern_command_list.fpp
deleted file mode 100644
index e7721c478..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/pattern_command_list.fpp
+++ /dev/null
@@ -1,28 +0,0 @@
-module Fw {
- port Cmd
- port CmdReg
- port CmdResponse
-}
-module M {
- passive component Commands {
- sync input port cmdRegIn: Fw.CmdReg
- output port cmdOut: Fw.Cmd
- sync input port cmdResponseIn: Fw.CmdResponse
- match cmdRegIn with cmdOut
- match cmdRegIn with cmdResponseIn
- }
- passive component C {
- command reg port cmdRegOut
- command recv port cmdIn
- command resp port cmdResponseOut
- }
- instance commands: Commands base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology T {
- instance commands
- instance c1
- instance c2
- command connections instance commands { c1 }
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/pattern_command_list.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/pattern_command_list.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/run b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/run.sh
deleted file mode 100644
index 8f1256fca..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_command_list()
-{
- run_test "-p $PWD" pattern_command_list && \
- diff_xml CmdRegPort CmdResponsePort CommandsComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/tests.sh
deleted file mode 100644
index de5336020..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_command_list
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/command_list/update-ref.sh
deleted file mode 100644
index 859dca9c8..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/command_list/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_command_list()
-{
- update "-p $PWD" pattern_command_list
- move_xml CmdPort CmdRegPort CmdResponsePort CommandsComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/event/CComponentAi.ref.xml
deleted file mode 100644
index 116c26b0d..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event/CComponentAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- LogPortAi.xml
- TimePortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/EventsComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/event/EventsComponentAi.ref.xml
deleted file mode 100644
index e32a0bd49..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event/EventsComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- LogPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/LogPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/event/LogPortAi.ref.xml
deleted file mode 100644
index 9b6927984..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event/LogPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/event/TTopologyAppAi.ref.xml
deleted file mode 100644
index 77e6aa9b5..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- EventsComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/TimePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/event/TimePortAi.ref.xml
deleted file mode 100644
index b8e4ad60c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event/TimePortAi.ref.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- Time.hpp
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/event/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/clean b/compiler/tools/fpp-to-xml/test/top_pattern/event/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/pattern_event.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/event/pattern_event.fpp
deleted file mode 100644
index 67165817f..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event/pattern_event.fpp
+++ /dev/null
@@ -1,23 +0,0 @@
-module Fw {
- type Time
- port Time($time: Fw.Time)
- port Log
-}
-module M {
- passive component Events {
- sync input port eventIn: Fw.Log
- }
- passive component C {
- time get port timeGetOut
- event port eventOut
- }
- instance events: Events base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology T {
- instance events
- instance c1
- instance c2
- event connections instance events
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/pattern_event.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/event/pattern_event.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/run b/compiler/tools/fpp-to-xml/test/top_pattern/event/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/event/run.sh
deleted file mode 100644
index 1dc0712e1..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_event()
-{
- run_test "-p $PWD" pattern_event && \
- diff_xml TimePort LogPort EventsComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/event/tests.sh
deleted file mode 100644
index 0a58f4dac..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_event
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/event/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/event/update-ref.sh
deleted file mode 100644
index cf6090c2f..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_event()
-{
- update "-p $PWD" pattern_event
- move_xml TimePort LogPort EventsComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/CComponentAi.ref.xml
deleted file mode 100644
index 116c26b0d..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/CComponentAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- LogPortAi.xml
- TimePortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/EventsComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/EventsComponentAi.ref.xml
deleted file mode 100644
index e32a0bd49..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/EventsComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- LogPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/LogPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/LogPortAi.ref.xml
deleted file mode 100644
index 9b6927984..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/LogPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/TTopologyAppAi.ref.xml
deleted file mode 100644
index fe878b798..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- EventsComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/TimePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/TimePortAi.ref.xml
deleted file mode 100644
index b8e4ad60c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/TimePortAi.ref.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- Time.hpp
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/clean b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/pattern_event_list.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/pattern_event_list.fpp
deleted file mode 100644
index f1d075ae0..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/pattern_event_list.fpp
+++ /dev/null
@@ -1,23 +0,0 @@
-module Fw {
- type Time
- port Time($time: Fw.Time)
- port Log
-}
-module M {
- passive component Events {
- sync input port eventIn: Fw.Log
- }
- passive component C {
- time get port timeGetOut
- event port eventOut
- }
- instance events: Events base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology T {
- instance events
- instance c1
- instance c2
- event connections instance events { c1 }
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/pattern_event_list.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/pattern_event_list.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/run b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/run.sh
deleted file mode 100644
index b2bf3b577..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_event_list()
-{
- run_test "-p $PWD" pattern_event_list && \
- diff_xml TimePort LogPort EventsComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/tests.sh
deleted file mode 100644
index b88582c62..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_event_list
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/event_list/update-ref.sh
deleted file mode 100644
index 433214413..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/event_list/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_event_list()
-{
- update "-p $PWD" pattern_event_list
- move_xml TimePort LogPort EventsComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/health/CComponentAi.ref.xml
deleted file mode 100644
index f79a4a514..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health/CComponentAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- PingPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health/HealthComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/health/HealthComponentAi.ref.xml
deleted file mode 100644
index 61ea77975..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health/HealthComponentAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- PingPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health/PingPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/health/PingPortAi.ref.xml
deleted file mode 100644
index 17fa52e16..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health/PingPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/health/TTopologyAppAi.ref.xml
deleted file mode 100644
index 76147149a..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- HealthComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/health/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health/clean b/compiler/tools/fpp-to-xml/test/top_pattern/health/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health/pattern_health.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/health/pattern_health.fpp
deleted file mode 100644
index 0effd4e8d..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health/pattern_health.fpp
+++ /dev/null
@@ -1,23 +0,0 @@
-module Svc {
- port Ping
-}
-module M {
- passive component Health {
- sync input port pingIn: [2] Svc.Ping
- output port pingOut: [2] Svc.Ping
- match pingOut with pingIn
- }
- passive component C {
- sync input port pingIn: Svc.Ping
- output port pingOut: Svc.Ping
- }
- instance $health: Health base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology T {
- instance $health
- instance c1
- instance c2
- health connections instance $health
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health/pattern_health.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/health/pattern_health.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health/run b/compiler/tools/fpp-to-xml/test/top_pattern/health/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/health/run.sh
deleted file mode 100644
index c3d85e95b..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_health()
-{
- run_test "-p $PWD" pattern_health && \
- diff_xml PingPort HealthComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/health/tests.sh
deleted file mode 100644
index 26b2db85f..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_health
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/health/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/health/update-ref.sh
deleted file mode 100644
index f7df6523a..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_health()
-{
- update "-p $PWD" pattern_health
- move_xml PingPort HealthComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/health_list/CComponentAi.ref.xml
deleted file mode 100644
index f79a4a514..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/CComponentAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- PingPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/HealthComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/health_list/HealthComponentAi.ref.xml
deleted file mode 100644
index dd7e0e939..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/HealthComponentAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- PingPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/PingPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/health_list/PingPortAi.ref.xml
deleted file mode 100644
index 17fa52e16..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/PingPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/health_list/TTopologyAppAi.ref.xml
deleted file mode 100644
index 7f9e3e882..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- HealthComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/health_list/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/clean b/compiler/tools/fpp-to-xml/test/top_pattern/health_list/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/pattern_health_list.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/health_list/pattern_health_list.fpp
deleted file mode 100644
index 1e923ab0b..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/pattern_health_list.fpp
+++ /dev/null
@@ -1,23 +0,0 @@
-module Svc {
- port Ping
-}
-module M {
- passive component Health {
- sync input port pingIn: Svc.Ping
- output port pingOut: Svc.Ping
- match pingOut with pingIn
- }
- passive component C {
- sync input port pingIn: Svc.Ping
- output port pingOut: Svc.Ping
- }
- instance $health: Health base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology T {
- instance $health
- instance c1
- instance c2
- health connections instance $health { c1 }
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/pattern_health_list.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/health_list/pattern_health_list.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/run b/compiler/tools/fpp-to-xml/test/top_pattern/health_list/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/health_list/run.sh
deleted file mode 100644
index de94456e8..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_health_list()
-{
- run_test "-p $PWD" pattern_health_list && \
- diff_xml PingPort HealthComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/health_list/tests.sh
deleted file mode 100644
index c2a571eff..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_health_list
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/health_list/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/health_list/update-ref.sh
deleted file mode 100644
index 6f56d3a30..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/health_list/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_health_list()
-{
- update "-p $PWD" pattern_health_list
- move_xml PingPort HealthComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param/CComponentAi.ref.xml
deleted file mode 100644
index 54f9fafd3..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/CComponentAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- PrmGetPortAi.xml
- PrmSetPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/HealthComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param/HealthComponentAi.ref.xml
deleted file mode 100644
index 61ea77975..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/HealthComponentAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- PingPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/ParametersComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param/ParametersComponentAi.ref.xml
deleted file mode 100644
index c64012b91..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/ParametersComponentAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- PrmGetPortAi.xml
- PrmSetPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/PingPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param/PingPortAi.ref.xml
deleted file mode 100644
index 17fa52e16..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/PingPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/PrmGetPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param/PrmGetPortAi.ref.xml
deleted file mode 100644
index 025e72b14..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/PrmGetPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/PrmSetPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param/PrmSetPortAi.ref.xml
deleted file mode 100644
index b05b2dec4..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/PrmSetPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param/TTopologyAppAi.ref.xml
deleted file mode 100644
index 6a416c7d7..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- ParametersComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/param/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/clean b/compiler/tools/fpp-to-xml/test/top_pattern/param/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/pattern_param.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/param/pattern_param.fpp
deleted file mode 100644
index 4c5bcc23d..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/pattern_param.fpp
+++ /dev/null
@@ -1,23 +0,0 @@
-module Fw {
- port PrmGet
- port PrmSet
-}
-module M {
- passive component Parameters {
- sync input port prmGetIn: Fw.PrmGet
- sync input port prmSetIn: Fw.PrmSet
- }
- passive component C {
- param get port prmGetOut
- param set port prmSetOut
- }
- instance parameters: Parameters base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology T {
- instance parameters
- instance c1
- instance c2
- param connections instance parameters
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/pattern_param.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/param/pattern_param.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/run b/compiler/tools/fpp-to-xml/test/top_pattern/param/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/param/run.sh
deleted file mode 100644
index 3a0a65e09..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_param()
-{
- run_test "-p $PWD" pattern_param && \
- diff_xml PrmGetPort PrmSetPort ParametersComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/param/tests.sh
deleted file mode 100644
index a65692067..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_param
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/param/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/param/update-ref.sh
deleted file mode 100644
index dbf52e4fb..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_param()
-{
- update "-p $PWD" pattern_param
- move_xml PrmGetPort PrmSetPort ParametersComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/CComponentAi.ref.xml
deleted file mode 100644
index 54f9fafd3..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/CComponentAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- PrmGetPortAi.xml
- PrmSetPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/HealthComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/HealthComponentAi.ref.xml
deleted file mode 100644
index 61ea77975..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/HealthComponentAi.ref.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
- PingPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/ParametersComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/ParametersComponentAi.ref.xml
deleted file mode 100644
index c64012b91..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/ParametersComponentAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- PrmGetPortAi.xml
- PrmSetPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/PingPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/PingPortAi.ref.xml
deleted file mode 100644
index 17fa52e16..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/PingPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/PrmGetPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/PrmGetPortAi.ref.xml
deleted file mode 100644
index 025e72b14..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/PrmGetPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/PrmSetPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/PrmSetPortAi.ref.xml
deleted file mode 100644
index b05b2dec4..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/PrmSetPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/TTopologyAppAi.ref.xml
deleted file mode 100644
index b952c1ba1..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- ParametersComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/clean b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/pattern_param_list.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/pattern_param_list.fpp
deleted file mode 100644
index 529ffdc6c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/pattern_param_list.fpp
+++ /dev/null
@@ -1,23 +0,0 @@
-module Fw {
- port PrmGet
- port PrmSet
-}
-module M {
- passive component Parameters {
- sync input port prmGetIn: Fw.PrmGet
- sync input port prmSetIn: Fw.PrmSet
- }
- passive component C {
- param get port prmGetOut
- param set port prmSetOut
- }
- instance parameters: Parameters base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology T {
- instance parameters
- instance c1
- instance c2
- param connections instance parameters { c1 }
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/pattern_param_list.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/pattern_param_list.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/run b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/run.sh
deleted file mode 100644
index e2cb362ca..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_param_list()
-{
- run_test "-p $PWD" pattern_param_list && \
- diff_xml PrmGetPort PrmSetPort ParametersComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/tests.sh
deleted file mode 100644
index 9d513bccf..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_param_list
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/param_list/update-ref.sh
deleted file mode 100644
index f62c23ecc..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/param_list/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_param_list()
-{
- update "-p $PWD" pattern_param_list
- move_xml PrmGetPort PrmSetPort ParametersComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/CComponentAi.ref.xml
deleted file mode 100644
index 81d801371..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/CComponentAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- TimePortAi.xml
- TlmPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TTopologyAppAi.ref.xml
deleted file mode 100644
index cae432c15..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- TelemetryComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TelemetryComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TelemetryComponentAi.ref.xml
deleted file mode 100644
index 68c4a988c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TelemetryComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- TlmPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TimePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TimePortAi.ref.xml
deleted file mode 100644
index b8e4ad60c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TimePortAi.ref.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- Time.hpp
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TlmPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TlmPortAi.ref.xml
deleted file mode 100644
index c6e3afdd1..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/TlmPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/clean b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/pattern_telemetry.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/pattern_telemetry.fpp
deleted file mode 100644
index 25186068c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/pattern_telemetry.fpp
+++ /dev/null
@@ -1,23 +0,0 @@
-module Fw {
- type Time
- port Time($time: Fw.Time)
- port Tlm
-}
-module M {
- passive component Telemetry {
- sync input port tlmIn: Fw.Tlm
- }
- passive component C {
- time get port timeGetOut
- telemetry port tlmOut
- }
- instance $telemetry: Telemetry base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology T {
- instance $telemetry
- instance c1
- instance c2
- telemetry connections instance $telemetry
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/pattern_telemetry.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/pattern_telemetry.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/run b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/run.sh
deleted file mode 100644
index 96b5f92c9..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_telemetry()
-{
- run_test "-p $PWD" pattern_telemetry && \
- diff_xml TimePort TlmPort TelemetryComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/tests.sh
deleted file mode 100644
index 5def0b178..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_telemetry
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/update-ref.sh
deleted file mode 100644
index c102709a8..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_telemetry()
-{
- update "-p $PWD" pattern_telemetry
- move_xml TimePort TlmPort TelemetryComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/CComponentAi.ref.xml
deleted file mode 100644
index 81d801371..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/CComponentAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- TimePortAi.xml
- TlmPortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TTopologyAppAi.ref.xml
deleted file mode 100644
index 6aa408bb5..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- TelemetryComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TelemetryComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TelemetryComponentAi.ref.xml
deleted file mode 100644
index 68c4a988c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TelemetryComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- TlmPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TimePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TimePortAi.ref.xml
deleted file mode 100644
index b8e4ad60c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TimePortAi.ref.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- Time.hpp
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TlmPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TlmPortAi.ref.xml
deleted file mode 100644
index c6e3afdd1..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/TlmPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/clean b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/pattern_telemetry_list.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/pattern_telemetry_list.fpp
deleted file mode 100644
index 81d0e600a..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/pattern_telemetry_list.fpp
+++ /dev/null
@@ -1,23 +0,0 @@
-module Fw {
- type Time
- port Time($time: Fw.Time)
- port Tlm
-}
-module M {
- passive component Telemetry {
- sync input port tlmIn: Fw.Tlm
- }
- passive component C {
- time get port timeGetOut
- telemetry port tlmOut
- }
- instance $telemetry: Telemetry base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology T {
- instance $telemetry
- instance c1
- instance c2
- telemetry connections instance $telemetry { c1 }
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/pattern_telemetry_list.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/pattern_telemetry_list.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/run b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/run.sh
deleted file mode 100644
index f74cd2a8e..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_telemetry_list()
-{
- run_test "-p $PWD" pattern_telemetry_list && \
- diff_xml TimePort TlmPort TelemetryComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/tests.sh
deleted file mode 100644
index c78a1a8b0..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_telemetry_list
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/update-ref.sh
deleted file mode 100644
index aec0e1b97..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/telemetry_list/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_telemetry_list()
-{
- update "-p $PWD" pattern_telemetry_list
- move_xml TimePort TlmPort TelemetryComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/CComponentAi.ref.xml
deleted file mode 100644
index 43d854776..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/CComponentAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- LogTextPortAi.xml
- TimePortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/LogTextPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/LogTextPortAi.ref.xml
deleted file mode 100644
index 97635152b..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/LogTextPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/TTopologyAppAi.ref.xml
deleted file mode 100644
index 0876b1746..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- TextEventsComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/TextEventsComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/TextEventsComponentAi.ref.xml
deleted file mode 100644
index 6e572f6ab..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/TextEventsComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- LogTextPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/TimePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/TimePortAi.ref.xml
deleted file mode 100644
index b8e4ad60c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/TimePortAi.ref.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- Time.hpp
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/clean b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/pattern_text_event.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/pattern_text_event.fpp
deleted file mode 100644
index f5a23c6b4..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/pattern_text_event.fpp
+++ /dev/null
@@ -1,23 +0,0 @@
-module Fw {
- type Time
- port Time($time: Fw.Time)
- port LogText
-}
-module M {
- passive component TextEvents {
- sync input port textEventIn: Fw.LogText
- }
- passive component C {
- time get port timeGetOut
- text event port textEventOut
- }
- instance textEvents: TextEvents base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x200
- topology T {
- instance textEvents
- instance c1
- instance c2
- text event connections instance textEvents
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/pattern_text_event.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/pattern_text_event.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/run b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/run.sh
deleted file mode 100644
index 12353ec16..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_text_event()
-{
- run_test "-p $PWD" pattern_text_event && \
- diff_xml TimePort LogTextPort TextEventsComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/tests.sh
deleted file mode 100644
index 55d5e3a41..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_text_event
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/text_event/update-ref.sh
deleted file mode 100644
index cc6276815..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_text_event()
-{
- update "-p $PWD" pattern_text_event
- move_xml TimePort LogTextPort TextEventsComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/CComponentAi.ref.xml
deleted file mode 100644
index 43d854776..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/CComponentAi.ref.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
- LogTextPortAi.xml
- TimePortAi.xml
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/LogTextPortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/LogTextPortAi.ref.xml
deleted file mode 100644
index 97635152b..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/LogTextPortAi.ref.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/TTopologyAppAi.ref.xml
deleted file mode 100644
index 24e4a3722..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- TextEventsComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/TextEventsComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/TextEventsComponentAi.ref.xml
deleted file mode 100644
index 6e572f6ab..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/TextEventsComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- LogTextPortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/TimePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/TimePortAi.ref.xml
deleted file mode 100644
index b8e4ad60c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/TimePortAi.ref.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- Time.hpp
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/clean b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/pattern_text_event_list.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/pattern_text_event_list.fpp
deleted file mode 100644
index e055dc8ba..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/pattern_text_event_list.fpp
+++ /dev/null
@@ -1,23 +0,0 @@
-module Fw {
- type Time
- port Time($time: Fw.Time)
- port LogText
-}
-module M {
- passive component TextEvents {
- sync input port textEventIn: Fw.LogText
- }
- passive component C {
- time get port timeGetOut
- text event port textEventOut
- }
- instance textEvents: TextEvents base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x200
- topology T {
- instance textEvents
- instance c1
- instance c2
- text event connections instance textEvents { c1 }
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/pattern_text_event_list.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/pattern_text_event_list.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/run b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/run.sh
deleted file mode 100644
index 117104e04..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_text_event_list()
-{
- run_test "-p $PWD" pattern_text_event_list && \
- diff_xml TimePort LogTextPort TextEventsComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/tests.sh
deleted file mode 100644
index 5dac094b4..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_text_event_list
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/update-ref.sh
deleted file mode 100644
index 8aa11a72f..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/text_event_list/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_text_event_list()
-{
- update "-p $PWD" pattern_text_event_list
- move_xml TimePort LogTextPort TextEventsComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/time/CComponentAi.ref.xml
deleted file mode 100644
index 4b3969419..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time/CComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- TimePortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/time/TTopologyAppAi.ref.xml
deleted file mode 100644
index e558667d3..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- TimeComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time/TimeComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/time/TimeComponentAi.ref.xml
deleted file mode 100644
index d4868ee20..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time/TimeComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- TimePortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time/TimePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/time/TimePortAi.ref.xml
deleted file mode 100644
index b8e4ad60c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time/TimePortAi.ref.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- Time.hpp
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/time/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time/clean b/compiler/tools/fpp-to-xml/test/top_pattern/time/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time/pattern_time.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/time/pattern_time.fpp
deleted file mode 100644
index 27dfcb33b..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time/pattern_time.fpp
+++ /dev/null
@@ -1,21 +0,0 @@
-module Fw {
- type Time
- port Time($time: Fw.Time)
-}
-module M {
- passive component Time {
- sync input port timeGetIn: Fw.Time
- }
- passive component C {
- time get port timeGetOut
- }
- instance $time: Time base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology T {
- instance $time
- instance c1
- instance c2
- time connections instance $time
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time/pattern_time.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/time/pattern_time.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time/run b/compiler/tools/fpp-to-xml/test/top_pattern/time/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/time/run.sh
deleted file mode 100644
index 5d3a7a56d..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_time()
-{
- run_test "-p $PWD" pattern_time && \
- diff_xml TimePort TimeComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/time/tests.sh
deleted file mode 100644
index 4406e258b..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_time
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/time/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/time/update-ref.sh
deleted file mode 100644
index fecac257e..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_time()
-{
- update "-p $PWD" pattern_time
- move_xml TimePort TimeComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/CComponentAi.ref.xml
deleted file mode 100644
index 4b3969419..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/CComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- TimePortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/TTopologyAppAi.ref.xml
deleted file mode 100644
index e558667d3..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- TimeComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/TimeComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/TimeComponentAi.ref.xml
deleted file mode 100644
index d4868ee20..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/TimeComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- TimePortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/TimePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/TimePortAi.ref.xml
deleted file mode 100644
index b8e4ad60c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/TimePortAi.ref.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- Time.hpp
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/clean b/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/pattern_time_existing.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/pattern_time_existing.fpp
deleted file mode 100644
index bfdd21ed7..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/pattern_time_existing.fpp
+++ /dev/null
@@ -1,24 +0,0 @@
-module Fw {
- type Time
- port Time($time: Fw.Time)
-}
-module M {
- passive component Time {
- sync input port timeGetIn: Fw.Time
- }
- passive component C {
- time get port timeGetOut
- }
- instance $time: Time base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology T {
- instance $time
- instance c1
- instance c2
- time connections instance $time
- connections Time {
- c1.timeGetOut -> $time.timeGetIn
- }
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/pattern_time_existing.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/pattern_time_existing.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/run b/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/run.sh
deleted file mode 100644
index b9502fcd5..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_time_existing()
-{
- run_test "-p $PWD" pattern_time_existing && \
- diff_xml TimePort TimeComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/tests.sh
deleted file mode 100644
index 0069b2939..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_time_existing
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/update-ref.sh
deleted file mode 100644
index 1eedc3b8b..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_existing/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_time_existing()
-{
- update "-p $PWD" pattern_time_existing
- move_xml TimePort TimeComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/CComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/time_list/CComponentAi.ref.xml
deleted file mode 100644
index 4b3969419..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/CComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- TimePortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/TTopologyAppAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/time_list/TTopologyAppAi.ref.xml
deleted file mode 100644
index dc733118e..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/TTopologyAppAi.ref.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
- CComponentAi.xml
- TimeComponentAi.xml
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/TimeComponentAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/time_list/TimeComponentAi.ref.xml
deleted file mode 100644
index d4868ee20..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/TimeComponentAi.ref.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- TimePortAi.xml
-
-
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/TimePortAi.ref.xml b/compiler/tools/fpp-to-xml/test/top_pattern/time_list/TimePortAi.ref.xml
deleted file mode 100644
index b8e4ad60c..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/TimePortAi.ref.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- Time.hpp
-
-
-
-
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/check-xml b/compiler/tools/fpp-to-xml/test/top_pattern/time_list/check-xml
deleted file mode 100755
index 50af24b01..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/check-xml
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=$PWD/../../../../..
-
-sh ../../scripts/check-xml.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/clean b/compiler/tools/fpp-to-xml/test/top_pattern/time_list/clean
deleted file mode 100755
index 8d322fe40..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/clean
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -e
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/clean.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/pattern_time_list.fpp b/compiler/tools/fpp-to-xml/test/top_pattern/time_list/pattern_time_list.fpp
deleted file mode 100644
index 83f5061fc..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/pattern_time_list.fpp
+++ /dev/null
@@ -1,21 +0,0 @@
-module Fw {
- type Time
- port Time($time: Fw.Time)
-}
-module M {
- passive component Time {
- sync input port timeGetIn: Fw.Time
- }
- passive component C {
- time get port timeGetOut
- }
- instance $time: Time base id 0x100
- instance c1: C base id 0x200
- instance c2: C base id 0x300
- topology T {
- instance $time
- instance c1
- instance c2
- time connections instance $time { c1 }
- }
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/pattern_time_list.ref.txt b/compiler/tools/fpp-to-xml/test/top_pattern/time_list/pattern_time_list.ref.txt
deleted file mode 100644
index e69de29bb..000000000
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/run b/compiler/tools/fpp-to-xml/test/top_pattern/time_list/run
deleted file mode 100755
index 6bcb2b473..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/run
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/run.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/run.sh b/compiler/tools/fpp-to-xml/test/top_pattern/time_list/run.sh
deleted file mode 100644
index f0f3985ad..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_time_list()
-{
- run_test "-p $PWD" pattern_time_list && \
- diff_xml TimePort TimeComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/tests.sh b/compiler/tools/fpp-to-xml/test/top_pattern/time_list/tests.sh
deleted file mode 100644
index 066ef0630..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/tests.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-tests="
-pattern_time_list
-"
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/update-ref b/compiler/tools/fpp-to-xml/test/top_pattern/time_list/update-ref
deleted file mode 100755
index 2889a0733..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/update-ref
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-export COMPILER_ROOT=../../../../..
-
-sh ../../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/update-ref.sh b/compiler/tools/fpp-to-xml/test/top_pattern/time_list/update-ref.sh
deleted file mode 100644
index f5afd0d37..000000000
--- a/compiler/tools/fpp-to-xml/test/top_pattern/time_list/update-ref.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-pattern_time_list()
-{
- update "-p $PWD" pattern_time_list
- move_xml TimePort TimeComponent CComponent TTopologyApp
-}
diff --git a/compiler/tools/fpp-to-xml/test/update-ref b/compiler/tools/fpp-to-xml/test/update-ref
deleted file mode 100755
index 5bfaedc59..000000000
--- a/compiler/tools/fpp-to-xml/test/update-ref
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh -e
-
-for file in `find . -mindepth 2 -name update-ref`
-do
- dir=`dirname $file`
- echo "[ $dir ]"
- base=`basename $file`
- (cd $dir; ./$base)
-done
diff --git a/compiler/tools/fpp/src/main/scala/fpp-from-xml.scala b/compiler/tools/fpp/src/main/scala/fpp-from-xml.scala
deleted file mode 100644
index af8984454..000000000
--- a/compiler/tools/fpp/src/main/scala/fpp-from-xml.scala
+++ /dev/null
@@ -1,53 +0,0 @@
-package fpp.compiler.tools
-
-import fpp.compiler.codegen._
-import fpp.compiler.util._
-import scopt.OParser
-
-object FPPFromXml {
-
- case class Options(
- files: List[File] = Nil,
- )
-
- def command(options: Options): Result.Result[Unit] = {
- for {
- xmlFiles <- Result.map(options.files, parseXmlFile)
- lines <- XmlFppWriter.writeFileList(xmlFiles)
- }
- yield lines.map(Line.write(Line.stdout) _)
- }
-
- def parseXmlFile(file: File): Result.Result[XmlFppWriter.File] = {
- for {
- elem <- try {
- Right(scala.xml.XML.loadFile(file.toString))
- }
- catch {
- case e: Exception => Left(XmlError.ParseError(file.toString, e.toString))
- }
- }
- yield XmlFppWriter.File(file.toString, elem)
- }
-
- def toolMain(args: Array[String]) =
- Tool(name).mainMethod(args, oparser, Options(), command)
-
- val builder = OParser.builder[Options]
-
- val name = "fpp-from-xml"
-
- val oparser = {
- import builder._
- OParser.sequence(
- programName(name),
- head(name, Version.v),
- help('h', "help").text("print this message and exit"),
- arg[String]("file ...")
- .unbounded()
- .action((f, c) => c.copy(files = File.fromString(f) :: c.files))
- .text("files to translate"),
- )
- }
-
-}
diff --git a/compiler/tools/fpp/src/main/scala/fpp-to-xml.scala b/compiler/tools/fpp/src/main/scala/fpp-to-xml.scala
deleted file mode 100644
index 0e8506337..000000000
--- a/compiler/tools/fpp/src/main/scala/fpp-to-xml.scala
+++ /dev/null
@@ -1,108 +0,0 @@
-package fpp.compiler.tools
-
-import fpp.compiler.analysis._
-import fpp.compiler.ast._
-import fpp.compiler.codegen._
-import fpp.compiler.syntax._
-import fpp.compiler.transform._
-import fpp.compiler.util._
-import scopt.OParser
-
-object FPPToXml {
-
- case class Options(
- dir: Option[String] = None,
- files: List[File] = Nil,
- imports: List[File] = Nil,
- names: Option[String] = None,
- prefixes: List[String] = Nil,
- defaultStringSize: Int = XmlWriterState.defaultDefaultStringSize,
- )
-
- def command(options: Options) = {
- val files = options.files.reverse match {
- case Nil => List(File.StdIn)
- case list => list
- }
- val a = Analysis(inputFileSet = options.files.toSet)
- for {
- tulFiles <- Result.map(files, Parser.parseFile (Parser.transUnit) (None) _)
- aTulFiles <- ResolveSpecInclude.transformList(
- a,
- tulFiles,
- ResolveSpecInclude.transUnit
- )
- tulFiles <- Right(aTulFiles._2)
- tulImports <- Result.map(options.imports, Parser.parseFile (Parser.transUnit) (None) _)
- a <- CheckSemantics.tuList(a, tulFiles ++ tulImports)
- s <- {
- val dir = options.dir match {
- case Some(dir1) => dir1
- case None => "."
- }
- ComputeXmlFiles.visitList(
- XmlWriterState(a, dir, options.prefixes, options.defaultStringSize),
- tulFiles,
- ComputeXmlFiles.transUnit
- )
- }
- _ <- options.names match {
- case Some(fileName) => writeXmlFileNames(s.locationMap.toList.map(_._1), fileName)
- case None => Right(())
- }
- _ <- XmlWriter.visitList(s, tulFiles, XmlWriter.transUnit)
- } yield ()
- }
-
- def writeXmlFileNames(xmlFiles: List[String], fileName: String) = {
- val file = File.fromString(fileName)
- for { writer <- file.openWrite()
- } yield {
- xmlFiles.sorted.map(writer.println(_))
- writer.close()
- }
- }
-
- def toolMain(args: Array[String]) =
- Tool(name).mainMethod(args, oparser, Options(), command)
-
- val builder = OParser.builder[Options]
-
- val name = "fpp-to-xml"
-
- val oparser = {
- import builder._
- OParser.sequence(
- programName(name),
- head(name, Version.v),
- help('h', "help").text("print this message and exit"),
- opt[String]('d', "directory")
- .valueName("")
- .action((d, c) => c.copy(dir = Some(d)))
- .text("output directory"),
- opt[Seq[String]]('i', "imports")
- .valueName(",...")
- .action((i, c) => c.copy(imports = i.toList.map(File.fromString(_))))
- .text("files to import"),
- opt[String]('n', "names")
- .valueName("")
- .action((n, c) => c.copy(names = Some(n)))
- .text("write names of generated files to "),
- opt[Seq[String]]('p', "path-prefixes")
- .valueName(",...")
- .action((p, c) => c.copy(prefixes = p.toList))
- .text("prefixes to delete from generated file paths"),
- opt[Int]('s', "size")
- .valueName("")
- .validate(s => if (s > 0) success else failure("size must be greater than zero"))
- .action((s, c) => c.copy(defaultStringSize = s))
- .text("default string size"),
- arg[String]("file ...")
- .unbounded()
- .optional()
- .action((f, c) => c.copy(files = File.fromString(f) :: c.files))
- .text("files to translate"),
- )
- }
-
-}
diff --git a/compiler/tools/fpp/src/main/scala/fpp.scala b/compiler/tools/fpp/src/main/scala/fpp.scala
index 62e979024..6bf2fc0cd 100644
--- a/compiler/tools/fpp/src/main/scala/fpp.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp.scala
@@ -15,7 +15,6 @@ object FPP {
case "depend" => FPPDepend.toolMain(options.args)
case "filenames" => FPPFilenames.toolMain(options.args)
case "format" => FPPFormat.toolMain(options.args)
- case "from-xml" => FPPFromXml.toolMain(options.args)
case "locate-defs" => FPPLocateDefs.toolMain(options.args)
case "locate-uses" => FPPLocateUses.toolMain(options.args)
case "syntax" => FPPSyntax.toolMain(options.args)
@@ -23,7 +22,6 @@ object FPP {
case "to-dict" => FPPToDict.toolMain(options.args)
case "to-json" => FPPtoJson.toolMain(options.args)
case "to-layout" => FPPToLayout.toolMain(options.args)
- case "to-xml" => FPPToXml.toolMain(options.args)
}
Right(None)
@@ -61,7 +59,6 @@ check performs semantic checking of FPP models
depend computes dependencies for FPP source files
filenames writes out the names of C++ files generated from FPP source files
format parses FPP source files and writes out formatted source files
-from-xml parses older F Prime XML files and converts them to FPP files
locate-defs parses FPP source files and reports the locations of symbol definitions
locate-uses parses FPP source files and reports the locations of symbols used in the files
syntax parses FPP source files into an abstract syntax tree (AST) and optionally writes out the AST
@@ -77,9 +74,9 @@ to-layout writes layout text files for connection graphs within F Prime topolo
.action((f, c) => c.copy(command = f))
.validate(c =>
c match {
- case "check" | "depend" | "filenames" | "format" | "from-xml" |
+ case "check" | "depend" | "filenames" | "format" |
"locate-defs" | "locate-uses" | "syntax" |
- "to-cpp" | "to-dict" | "to-json" | "to-layout" | "to-xml" =>
+ "to-cpp" | "to-dict" | "to-json" | "to-layout" =>
Right(None)
case _ => Left(s"invalid fpp command '$c'")
}
From 3f316ee37d6e01bcb9056d0361b8e88ba96dc507 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 13:14:03 -0700
Subject: [PATCH 005/110] Put back from-xml
---
compiler/install | 1 +
.../XmlFppWriter/ArrayXmlFppWriter.scala | 79 +++
.../XmlFppWriter/ComponentXmlFppWriter.scala | 531 ++++++++++++++++++
.../XmlFppWriter/EnumXmlFppWriter.scala | 88 +++
.../FormalParamsXmlFppWriter.scala | 72 +++
.../XmlFppWriter/PortXmlFppWriter.scala | 62 ++
.../XmlFppWriter/StructXmlFppWriter.scala | 106 ++++
.../XmlFppWriter/TlmPacketSetXmlWriter.scala | 121 ++++
.../XmlFppWriter/TopologyXmlFppWriter.scala | 186 ++++++
.../codegen/XmlFppWriter/XmlFppWriter.scala | 435 ++++++++++++++
.../fpp/src/main/scala/fpp-from-xml.scala | 53 ++
compiler/tools/fpp/src/main/scala/fpp.scala | 4 +-
12 files changed, 1737 insertions(+), 1 deletion(-)
create mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/ArrayXmlFppWriter.scala
create mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/ComponentXmlFppWriter.scala
create mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/EnumXmlFppWriter.scala
create mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/FormalParamsXmlFppWriter.scala
create mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/PortXmlFppWriter.scala
create mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/StructXmlFppWriter.scala
create mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/TlmPacketSetXmlWriter.scala
create mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/TopologyXmlFppWriter.scala
create mode 100644 compiler/lib/src/main/scala/codegen/XmlFppWriter/XmlFppWriter.scala
create mode 100644 compiler/tools/fpp/src/main/scala/fpp-from-xml.scala
diff --git a/compiler/install b/compiler/install
index f7b668826..30b9937e0 100755
--- a/compiler/install
+++ b/compiler/install
@@ -56,6 +56,7 @@ check
depend
filenames
format
+from-xml
locate-defs
locate-uses
syntax
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/ArrayXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/ArrayXmlFppWriter.scala
new file mode 100644
index 000000000..37d7e3145
--- /dev/null
+++ b/compiler/lib/src/main/scala/codegen/XmlFppWriter/ArrayXmlFppWriter.scala
@@ -0,0 +1,79 @@
+package fpp.compiler.codegen
+
+import fpp.compiler.ast._
+import fpp.compiler.analysis
+import fpp.compiler.codegen._
+import fpp.compiler.util._
+import scala.xml.Node
+
+/** Writes out an F Prime XML array as FPP source */
+object ArrayXmlFppWriter extends LineUtils {
+
+ def writeFile(file: XmlFppWriter.File): XmlFppWriter.Result =
+ for (tuMember <- FppBuilder.tuMember(file))
+ yield FppWriter.tuMember(tuMember)
+
+ private object FppBuilder {
+
+ /** Translates an XML type to an FPP type name */
+ def translateType(file: XmlFppWriter.File): Node => Result.Result[Ast.TypeName] = file.translateType(node => Right(node.text)) _
+
+ /** Translates a block of default values from FPP to XML */
+ def translateDefaults(node: scala.xml.Node, tn: Ast.TypeName): (Option[AstNode[Ast.Expr]], List[String]) = {
+ val xmlElements = node \ "value"
+ val arrayNodeOpt = for {
+ elementNodes <- Options.map(
+ xmlElements.toList,
+ ((node: scala.xml.Node) => XmlFppWriter.FppBuilder.translateValue(node.text, tn))
+ )
+ } yield AstNode.create(Ast.ExprArray(elementNodes))
+ val note = arrayNodeOpt match {
+ case None =>
+ val xmlArray = "[ " ++ xmlElements.map(_.text).mkString(", ") ++ " ]"
+ val s = "could not translate array value " ++ xmlArray
+ List(XmlFppWriter.constructNote(s))
+ case _ => Nil
+ }
+ (arrayNodeOpt, note)
+ }
+
+ /** Extracts array definitions from struct members */
+ def defArrayAnnotated(file: XmlFppWriter.File):
+ Result.Result[Ast.Annotated[Ast.DefArray]] =
+ for {
+ name <- file.getAttribute(file.elem, "name")
+ comment <- file.getComment(file.elem)
+ xmlSize <- file.getSingleChild(file.elem, "size")
+ xmlEltType <- file.getSingleChild(file.elem, "type")
+ eltType <- translateType(file)(xmlEltType)
+ xmlDefault <- file.getSingleChild(file.elem, "default")
+ xmlFormat <- file.getSingleChild(file.elem, "format")
+ }
+ yield {
+ val (fppDefaultsOpt, note1) = translateDefaults(xmlDefault, eltType)
+ val (fppFormatOpt, note2) =
+ XmlFppWriter.FppBuilder.translateFormatOpt(Some(xmlFormat.text))
+ val note = note1 ++ note2
+ val node = Ast.DefArray(
+ name,
+ AstNode.create(Ast.ExprLiteralInt(xmlSize.text)),
+ AstNode.create(eltType),
+ fppDefaultsOpt,
+ fppFormatOpt.map(AstNode.create(_))
+ )
+ (note ++ comment, node, Nil)
+ }
+
+ /** Generates the TU member */
+ def tuMember(file: XmlFppWriter.File): Result.Result[Ast.TUMember] =
+ for (array <- defArrayAnnotated(file))
+ yield XmlFppWriter.tuMember(
+ array,
+ Ast.TUMember.DefArray.apply,
+ Ast.ModuleMember.DefArray.apply,
+ file
+ )
+
+ }
+
+}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/ComponentXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/ComponentXmlFppWriter.scala
new file mode 100644
index 000000000..386df1414
--- /dev/null
+++ b/compiler/lib/src/main/scala/codegen/XmlFppWriter/ComponentXmlFppWriter.scala
@@ -0,0 +1,531 @@
+package fpp.compiler.codegen
+
+import fpp.compiler.ast._
+import fpp.compiler.codegen._
+import fpp.compiler.util._
+import scala.xml.Node
+
+/** Writes out an F Prime XML component as FPP source */
+object ComponentXmlFppWriter extends LineUtils {
+
+ /** Writes a component file */
+ def writeComponentFile(file: XmlFppWriter.File): XmlFppWriter.Result =
+ for (tuMember <- FppBuilder.tuMember(file))
+ yield FppWriter.tuMember(tuMember)
+
+ /** Writes an imported file */
+ private def writeImportedFile
+ (memberGenerator: FppBuilder.MemberGenerator)
+ (file: XmlFppWriter.File): XmlFppWriter.Result =
+ for (members <- FppBuilder.mapChildren(file, memberGenerator))
+ yield Line.blankSeparated (FppWriter.componentMember) (members)
+
+ /** Writes a commands file */
+ val writeCommandsFile: XmlFppWriter.File => XmlFppWriter.Result = writeImportedFile(FppBuilder.MemberGenerator.Command) _
+
+ /** Writes a params file */
+ val writeParamsFile: XmlFppWriter.File => XmlFppWriter.Result = writeImportedFile(FppBuilder.MemberGenerator.Param) _
+
+ /** Writes a ports file */
+ val writePortsFile: XmlFppWriter.File => XmlFppWriter.Result = writeImportedFile(FppBuilder.MemberGenerator.Port) _
+
+ /** Writes a tlm channels file */
+ val writeTlmChannelsFile: XmlFppWriter.File => XmlFppWriter.Result = writeImportedFile(FppBuilder.MemberGenerator.TlmChannel) _
+
+ /** Writes an events file */
+ val writeEventsFile: XmlFppWriter.File => XmlFppWriter.Result = writeImportedFile(FppBuilder.MemberGenerator.Event) _
+
+ /** Writes an internal ports file */
+ val writeInternalPortsFile: XmlFppWriter.File => XmlFppWriter.Result = writeImportedFile(FppBuilder.MemberGenerator.InternalPort) _
+
+ /** Builds FPP for translating Component XML */
+ private object FppBuilder {
+
+ /** Generates the TU member */
+ def tuMember(file: XmlFppWriter.File): Result.Result[Ast.TUMember] =
+ for {
+ component <- defComponentAnnotated(file)
+ }
+ yield XmlFppWriter.tuMember(
+ component,
+ Ast.TUMember.DefComponent.apply,
+ Ast.ModuleMember.DefComponent.apply,
+ file
+ )
+
+ /** Component member generator */
+ trait MemberGenerator {
+
+ val xmlName: String
+
+ /** Generates a member node */
+ def generateMemberNode(file: XmlFppWriter.File, node: scala.xml.Node):
+ Result.Result[Ast.Annotated[Ast.ComponentMember.Node]] =
+ Left(file.semanticError(s"$xmlName not implemented"))
+
+ /** Generates a list of member nodes */
+ def generateMemberNodes(file: XmlFppWriter.File, node: scala.xml.Node):
+ Result.Result[List[Ast.Annotated[Ast.ComponentMember.Node]]] =
+ for (node <- generateMemberNode(file, node))
+ yield List(node)
+
+ /** Generates a list of members */
+ final def generateMembers(file: XmlFppWriter.File, node: scala.xml.Node): Result.Result[List[Ast.ComponentMember]] =
+ generateMemberNodes(file, node) match {
+ case Left(error) => Left(error)
+ case Right(aNodes) => Right(aNodes.map(Ast.ComponentMember(_)))
+ }
+
+ }
+
+ /** Constructs an enum component member */
+ def constructEnumMember(enumAnnotated: Ast.Annotated[Ast.DefEnum]):
+ Ast.Annotated[Ast.ComponentMember.DefEnum] = {
+ val (pre, e, post) = enumAnnotated
+ (pre, Ast.ComponentMember.DefEnum(AstNode.create(e)), post)
+ }
+
+ /** Extracts enum definitions in argument types */
+ def translateArgEnums(file: XmlFppWriter.File, xmlNode: scala.xml.Node):
+ Result.Result[List[Ast.Annotated[Ast.ComponentMember.DefEnum]]] =
+ for (enums <- FormalParamsXmlFppWriter.defEnumAnnotatedList(file, xmlNode))
+ yield enums.map(constructEnumMember)
+
+ /** Translates an optional queue full attribute */
+ def translateQueueFullOpt(file: XmlFppWriter.File, xmlNode: scala.xml.Node):
+ Result.Result[Option[Ast.QueueFull]] = {
+ val xmlQueueFullOpt = XmlFppWriter.getAttributeOpt(xmlNode, "full")
+ xmlQueueFullOpt match {
+ case Some("assert") => Right(Some(Ast.QueueFull.Assert))
+ case Some("block") => Right(Some(Ast.QueueFull.Block))
+ case Some("drop") => Right(Some(Ast.QueueFull.Drop))
+ case Some(xmlQueueFull) =>
+ Left(file.semanticError(s"invalid queue full behavior $xmlQueueFull"))
+ case None => Right(None)
+ }
+ }
+
+ /** Translates an optional queue full attribute as an AST node */
+ def translateQueueFullNodeOpt(file: XmlFppWriter.File, xmlNode: scala.xml.Node):
+ Result.Result[Option[AstNode[Ast.QueueFull]]] =
+ for (qfo <- translateQueueFullOpt(file, xmlNode))
+ yield qfo.map(AstNode.create(_))
+
+ /** Translates an XML type to an FPP type name */
+ def translateType(file: XmlFppWriter.File): Node => Result.Result[Ast.TypeName] =
+ file.translateType(node => file.getAttribute(node, "data_type")) _
+
+ case object MemberGenerator {
+
+ case object Include extends MemberGenerator {
+
+ val xmlName = "import_dictionary"
+
+ override def generateMemberNode(file: XmlFppWriter.File, xmlNode: scala.xml.Node) =
+ for {
+ child <- file.getUniqueChild(xmlNode)
+ }
+ yield {
+ val path = child.toString
+ val fppPath = path.replaceAll("\\.xml$", ".fppi")
+ val fileName = fppPath.split("/").toList.reverse.head
+ val fileNameNode = AstNode.create(fileName)
+ val specIncludeNode = AstNode.create(Ast.SpecInclude(fileNameNode))
+ val memberNode = Ast.ComponentMember.SpecInclude(specIncludeNode)
+ val annotation = if (fileName == fppPath) Nil else {
+ val s = s"original path was $path"
+ List(XmlFppWriter.constructNote(s))
+ }
+ (annotation, memberNode, Nil)
+ }
+
+ }
+
+ case object Port extends MemberGenerator {
+
+ val xmlName = "port"
+
+ def general(file: XmlFppWriter.File, xmlNode: scala.xml.Node): Result.Result[Ast.SpecPortInstance.General] = {
+ import Ast.SpecPortInstance._
+ for {
+ xmlKind <- file.getAttribute(xmlNode, "kind")
+ kind <- xmlKind match {
+ case "async_input" => Right(AsyncInput)
+ case "guarded_input" => Right(GuardedInput)
+ case "output" => Right(Output)
+ case "sync_input" => Right(SyncInput)
+ case _ => Left(file.semanticError(s"invalid port kind $xmlKind"))
+ }
+ name <- file.getAttribute(xmlNode, "name")
+ xmlPort <- file.getAttribute(xmlNode, "data_type")
+ queueFull <- translateQueueFullOpt(file, xmlNode)
+ }
+ yield {
+ val size = XmlFppWriter.getAttributeOpt(xmlNode, "max_number").map(
+ text => AstNode.create(Ast.ExprLiteralInt(text))
+ )
+ val port = xmlPort match {
+ case "Serial" => None
+ case _ => Some(XmlFppWriter.FppBuilder.translateQualIdent(xmlPort))
+ }
+ val priority = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "priority")
+ General(kind, name, size, port, priority, queueFull.map(AstNode.create(_)))
+ }
+ }
+
+ def special(file: XmlFppWriter.File, xmlNode: scala.xml.Node, role: String):
+ Result.Result[Ast.SpecPortInstance.Special] = {
+ import Ast.SpecPortInstance._
+ for {
+ kind <- role match {
+ case "Cmd" => Right(CommandRecv)
+ case "CmdRegistration" => Right(CommandReg)
+ case "CmdResponse" => Right(CommandResp)
+ case "LogEvent" => Right(Ast.SpecPortInstance.Event)
+ case "ParamGet" => Right(ParamGet)
+ case "ParamSet" => Right(ParamSet)
+ case "Telemetry" => Right(Telemetry)
+ case "LogTextEvent" => Right(TextEvent)
+ case "TimeGet" => Right(TimeGet)
+ case _ => Left(file.semanticError(s"invalid role $role"))
+ }
+ name <- file.getAttribute(xmlNode, "name")
+ }
+ yield Special(None, kind, name, None, None)
+ }
+
+ override def generateMemberNode(file: XmlFppWriter.File, xmlNode: scala.xml.Node) = {
+ for {
+ comment <- file.getComment(xmlNode)
+ member <- XmlFppWriter.getAttributeOpt(xmlNode, "role") match {
+ case Some(role) => special(file, xmlNode, role)
+ case None => general(file, xmlNode)
+ }
+ }
+ yield {
+ val node = AstNode.create(member)
+ val memberNode = Ast.ComponentMember.SpecPortInstance(node)
+ (comment, memberNode, Nil)
+ }
+ }
+
+ }
+
+ case object InternalPort extends MemberGenerator {
+
+ val xmlName = "internal_interface"
+
+ override def generateMemberNodes(file: XmlFppWriter.File, xmlNode: scala.xml.Node) =
+ for {
+ annotatedEnumMemberNodes <- translateArgEnums(file, xmlNode)
+ comment <- file.getComment(xmlNode)
+ name <- file.getAttribute(xmlNode, "name")
+ params <- FormalParamsXmlFppWriter.formalParamList(file, xmlNode)
+ queueFull <- translateQueueFullOpt(file, xmlNode)
+ }
+ yield {
+ val annotatedPortMemberNode = {
+ val priority = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "priority")
+ val internalPort = Ast.SpecInternalPort(name, params, priority, queueFull)
+ val node = AstNode.create(internalPort)
+ val memberNode = Ast.ComponentMember.SpecInternalPort(node)
+ (comment, memberNode, Nil)
+ }
+ annotatedEnumMemberNodes :+ annotatedPortMemberNode
+ }
+
+ }
+
+ case object Command extends MemberGenerator {
+
+ val xmlName = "command"
+
+ override def generateMemberNodes(file: XmlFppWriter.File, xmlNode: scala.xml.Node) =
+ for {
+ xmlKind <- file.getAttribute(xmlNode, "kind")
+ kind <- xmlKind match {
+ case "async" => Right(Ast.SpecCommand.Async)
+ case "guarded" => Right(Ast.SpecCommand.Guarded)
+ case "sync" => Right(Ast.SpecCommand.Sync)
+ case _ => Left(file.semanticError(s"invalid command kind $xmlKind"))
+ }
+ annotatedEnumMemberNodes <- translateArgEnums(file, xmlNode)
+ comment <- file.getComment(xmlNode)
+ name <- file.getAttribute(xmlNode, "mnemonic")
+ params <- FormalParamsXmlFppWriter.formalParamList(file, xmlNode)
+ queueFull <- translateQueueFullNodeOpt(file, xmlNode)
+ }
+ yield {
+ val annotatedCommandMemberNode = {
+ val priority = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "priority")
+ val opcode = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "opcode")
+ val command = Ast.SpecCommand(
+ kind,
+ name,
+ params,
+ opcode,
+ priority,
+ queueFull
+ )
+ val node = AstNode.create(command)
+ val memberNode = Ast.ComponentMember.SpecCommand(node)
+ (comment, memberNode, Nil)
+ }
+ annotatedEnumMemberNodes :+ annotatedCommandMemberNode
+ }
+
+ }
+
+ case object Event extends MemberGenerator {
+
+ val xmlName = "event"
+
+ override def generateMemberNodes(file: XmlFppWriter.File, xmlNode: scala.xml.Node) =
+ for {
+ annotatedEnumMemberNodes <- translateArgEnums(file, xmlNode)
+ comment <- file.getComment(xmlNode)
+ name <- file.getAttribute(xmlNode, "name")
+ params <- FormalParamsXmlFppWriter.formalParamList(file, xmlNode)
+ xmlSeverity <- file.getAttribute(xmlNode, "severity")
+ severity <- xmlSeverity match {
+ case "ACTIVITY_HI" => Right(Ast.SpecEvent.ActivityHigh)
+ case "ACTIVITY_LO" => Right(Ast.SpecEvent.ActivityLow)
+ case "COMMAND" => Right(Ast.SpecEvent.Command)
+ case "DIAGNOSTIC" => Right(Ast.SpecEvent.Diagnostic)
+ case "FATAL" => Right(Ast.SpecEvent.Fatal)
+ case "WARNING_HI" => Right(Ast.SpecEvent.WarningHigh)
+ case "WARNING_LO" => Right(Ast.SpecEvent.WarningLow)
+ case _ => Left(file.semanticError(s"invalid severity $xmlSeverity"))
+ }
+ xmlFormat <- file.getAttribute(xmlNode, "format_string")
+ }
+ yield {
+ val annotatedEventMemberNode = {
+ val id = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "id")
+ val (formatOpt, note) =
+ XmlFppWriter.FppBuilder.translateFormatOpt(Some(xmlFormat))
+ val format = formatOpt match {
+ case Some(format) => format
+ case None => "{}"
+ }
+ val throttle = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "throttle")
+ val event = Ast.SpecEvent(
+ name,
+ params,
+ severity,
+ id,
+ AstNode.create(format),
+ throttle
+ )
+ val node = AstNode.create(event)
+ val memberNode = Ast.ComponentMember.SpecEvent(node)
+ (note ++ comment, memberNode, Nil)
+ }
+ annotatedEnumMemberNodes :+ annotatedEventMemberNode
+ }
+
+ }
+
+ case object Param extends MemberGenerator {
+
+ val xmlName = "parameter"
+
+ override def generateMemberNodes(file: XmlFppWriter.File, xmlNode: scala.xml.Node) = {
+ for {
+ enumAnnotatedOpt <- XmlFppWriter.FppBuilder.InlineEnumBuilder.defEnumAnnotatedOpt(file)(xmlNode)
+ comment <- file.getComment(xmlNode)
+ name <- file.getAttribute(xmlNode, "name")
+ typeName <- translateType(file)(xmlNode)
+ }
+ yield {
+ val id = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "id")
+ val xmlDefaultOpt = XmlFppWriter.getAttributeOpt(xmlNode, "default")
+ val defaultOpt = xmlDefaultOpt.flatMap(
+ s => XmlFppWriter.FppBuilder.translateValue(s, typeName)
+ )
+ val defaultNote = (xmlDefaultOpt, defaultOpt) match {
+ case (Some(xmlDefault), None) =>
+ val s = s"could not translate default value $xmlDefault"
+ List(XmlFppWriter.constructNote(s))
+ case _ => Nil
+ }
+ val setOpcode = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "set_opcode")
+ val saveOpcode = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "save_opcode")
+ val isExternal = XmlFppWriter.getAttributeOpt(xmlNode, "external").isDefined
+
+ val paramMemberNode = {
+ val param = Ast.SpecParam(
+ name,
+ AstNode.create(typeName),
+ defaultOpt,
+ id,
+ setOpcode,
+ saveOpcode,
+ isExternal
+ )
+ val node = AstNode.create(param)
+ val memberNode = Ast.ComponentMember.SpecParam(node)
+ (defaultNote ++ comment, memberNode, Nil)
+ }
+ enumAnnotatedOpt match {
+ case Some(enumAnnotated) =>
+ val enumMemberNode = constructEnumMember(enumAnnotated)
+ List(enumMemberNode, paramMemberNode)
+ case None => List(paramMemberNode)
+ }
+ }
+ }
+
+ }
+
+ case object TlmChannel extends MemberGenerator {
+
+ val xmlName = "channel"
+
+ override def generateMemberNodes(file: XmlFppWriter.File, xmlNode: scala.xml.Node) = {
+ type Limits = List[Ast.SpecTlmChannel.Limit]
+ def translateLimits(
+ direction: String,
+ typeName: Ast.TypeName,
+ channel: String
+ ): Result.Result[Limits] = {
+ import Ast.SpecTlmChannel._
+ val pairs = List(
+ (Red, "red"),
+ (Orange, "orange"),
+ (Yellow, "yellow")
+ ).map(pair => {
+ val (kind, name) = pair
+ val xmlName = s"${direction}_$name"
+ XmlFppWriter.getAttributeOpt(xmlNode, xmlName).map((kind, _))
+ }).filter(_.isDefined).map(_.get)
+ Result.foldLeft (pairs) (Nil: Limits) ((result, pair) => {
+ val (kind, xmlValue) = pair
+ XmlFppWriter.FppBuilder.translateValue(xmlValue, typeName) match {
+ case Some(exprNode) =>
+ val kindNode = AstNode.create(kind)
+ Right(result :+ (kindNode, exprNode))
+ case None =>
+ Left(file.semanticError(s"non-numeric type in limit for channel $channel"))
+ }
+ })
+ }
+ for {
+ enumAnnotatedOpt <- XmlFppWriter.FppBuilder.InlineEnumBuilder.defEnumAnnotatedOpt(file)(xmlNode)
+ name <- file.getAttribute(xmlNode, "name")
+ comment <- file.getComment(xmlNode)
+ typeName <- translateType(file)(xmlNode)
+ update <- XmlFppWriter.getAttributeOpt(xmlNode, "update") match {
+ case None => Right(None)
+ case Some("always") => Right(Some(Ast.SpecTlmChannel.Always))
+ case Some("on_change") => Right(Some(Ast.SpecTlmChannel.OnChange))
+ case Some(xmlUpdate) => Left(file.semanticError(s"invalid update specifier $xmlUpdate"))
+ }
+ lowLimits <- translateLimits("low", typeName, name)
+ highLimits <- translateLimits("high", typeName, name)
+ }
+ yield {
+ val id = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "id")
+ val xmlFormat = XmlFppWriter.getAttributeOpt(xmlNode, "format_string")
+ val (format, formatNote) =
+ XmlFppWriter.FppBuilder.translateFormatOpt(xmlFormat)
+ val channel = Ast.SpecTlmChannel(
+ name,
+ AstNode.create(typeName),
+ id,
+ update,
+ format.map(AstNode.create(_)),
+ lowLimits,
+ highLimits
+ )
+ val node = AstNode.create(channel)
+ val memberNode = Ast.ComponentMember.SpecTlmChannel(node)
+ val tlmChannelMemberNode = (formatNote ++ comment, memberNode, Nil)
+ enumAnnotatedOpt match {
+ case Some(enumAnnotated) =>
+ val enumMemberNode = constructEnumMember(enumAnnotated)
+ List(enumMemberNode, tlmChannelMemberNode)
+ case None => List(tlmChannelMemberNode)
+ }
+ }
+ }
+
+ }
+
+ }
+
+ /** Member list result */
+ type MemListRes = Result.Result[List[Ast.ComponentMember]]
+
+ /** Member list list result */
+ type MemListListRes = Result.Result[List[List[Ast.ComponentMember]]]
+
+ /** Maps a node generator onto children at the top level */
+ def mapChildren(file: XmlFppWriter.File, memberGenerator: MemberGenerator): MemListRes =
+ mapChildrenOfNodeOpt(file, Some(file.elem), memberGenerator)
+
+ /** Maps a node generator onto the children of an XML node */
+ def mapChildrenOfNodeOpt(
+ file: XmlFppWriter.File,
+ nodeOpt: Option[scala.xml.Node],
+ memberGenerator: MemberGenerator
+ ): MemListRes =
+ for {
+ list <- nodeOpt.fold(Right(Nil): MemListListRes)(node => {
+ val children = node \ memberGenerator.xmlName
+ Result.map(children.toList, memberGenerator.generateMembers(file, _))
+ })
+ } yield list.flatten
+
+ /** Extracts component members */
+ def componentMemberList(file: XmlFppWriter.File):
+ Result.Result[List[Ast.ComponentMember]] = {
+ def mapChildrenOfName(args: (String, MemberGenerator)): MemListRes = {
+ val (name, memberGenerator) = args
+ for {
+ nodeOpt <- file.getSingleChildOpt(file.elem, name)
+ result <- mapChildrenOfNodeOpt(file, nodeOpt, memberGenerator)
+ } yield result
+ }
+ for {
+ includes <- mapChildren(file, MemberGenerator.Include)
+ lists <- Result.map(
+ List(
+ ("ports", MemberGenerator.Port),
+ ("internal_interfaces", MemberGenerator.InternalPort),
+ ("commands", MemberGenerator.Command),
+ ("events", MemberGenerator.Event),
+ ("parameters", MemberGenerator.Param),
+ ("telemetry", MemberGenerator.TlmChannel)
+ ),
+ mapChildrenOfName _
+ )
+ }
+ yield (includes :: lists).flatten
+ }
+
+ /** Translates a component kind */
+ def translateKind(file: XmlFppWriter.File, xmlKind: String):
+ Result.Result[Ast.ComponentKind] =
+ xmlKind match {
+ case "active" => Right(Ast.ComponentKind.Active)
+ case "passive" => Right(Ast.ComponentKind.Passive)
+ case "queued" => Right(Ast.ComponentKind.Queued)
+ case _ => Left(file.semanticError(s"invalid component kind $xmlKind"))
+ }
+
+ /** Translates the component */
+ def defComponentAnnotated(file: XmlFppWriter.File):
+ Result.Result[Ast.Annotated[Ast.DefComponent]] =
+ for {
+ comment <- file.getComment(file.elem)
+ xmlKind <- file.getAttribute(file.elem, "kind")
+ kind <- translateKind(file, xmlKind)
+ name <- file.getAttribute(file.elem, "name")
+ members <- componentMemberList(file)
+ }
+ yield (comment, Ast.DefComponent(kind, name, members), Nil)
+
+ }
+
+}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/EnumXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/EnumXmlFppWriter.scala
new file mode 100644
index 000000000..7d6be240c
--- /dev/null
+++ b/compiler/lib/src/main/scala/codegen/XmlFppWriter/EnumXmlFppWriter.scala
@@ -0,0 +1,88 @@
+package fpp.compiler.codegen
+
+import fpp.compiler.ast._
+import fpp.compiler.codegen._
+import fpp.compiler.util._
+
+/** Writes out an F Prime XML enum as FPP source */
+object EnumXmlFppWriter extends LineUtils {
+
+ def writeFile(file: XmlFppWriter.File): XmlFppWriter.Result =
+ for (tuMember <- FppBuilder.tuMember(file))
+ yield FppWriter.tuMember(tuMember)
+
+ private object FppBuilder {
+
+ def annotation(file: XmlFppWriter.File): List[String] = {
+ // Not supported in F Prime XML
+ Nil
+ }
+
+ def constants(file: XmlFppWriter.File): Result.Result[List[Ast.Annotated[AstNode[Ast.DefEnumConstant]]]] = {
+ val items = file.elem \ "item"
+ Result.map(items.toList, defEnumConstantAnnotatedNode(file, _))
+ }
+
+ def defEnum(file: XmlFppWriter.File): Result.Result[Ast.DefEnum] =
+ for {
+ name <- file.getAttribute(file.elem, "name")
+ constants <- FppBuilder.constants(file)
+ }
+ yield {
+ val repType = FppBuilder.repType(file)
+ val default = FppBuilder.default(file)
+ Ast.DefEnum(name, repType, constants, default)
+ }
+
+ def defEnumConstant(
+ file: XmlFppWriter.File,
+ constant: scala.xml.Node
+ ): Result.Result[Ast.DefEnumConstant] =
+ for {
+ name <- file.getAttribute(constant, "name")
+ value <- file.getAttribute(constant, "value")
+ }
+ yield {
+ val e = Ast.ExprLiteralInt(value)
+ val node = AstNode.create(e)
+ Ast.DefEnumConstant(name, Some(node))
+ }
+
+ def defEnumConstantAnnotatedNode(
+ file: XmlFppWriter.File,
+ constant: scala.xml.Node
+ ): Result.Result[Ast.Annotated[AstNode[Ast.DefEnumConstant]]] =
+ for (data <- defEnumConstant(file, constant))
+ yield {
+ val a = XmlFppWriter.getAttributeComment(constant)
+ val node = AstNode.create(data)
+ (Nil, node, a)
+ }
+
+ def default(file: XmlFppWriter.File): Option[AstNode[Ast.Expr]] = {
+ // Not supported in F Prime XML
+ None
+ }
+
+ def repType(file: XmlFppWriter.File): Option[AstNode[Ast.TypeName]] = {
+ // Not supported in F Prime XML
+ None
+ }
+
+ /** Generates the TU member */
+ def tuMember(file: XmlFppWriter.File): Result.Result[Ast.TUMember] =
+ for (data <- defEnum(file))
+ yield {
+ val a = annotation(file)
+ val aT = (a, data, Nil)
+ XmlFppWriter.tuMember(
+ aT,
+ Ast.TUMember.DefEnum.apply,
+ Ast.ModuleMember.DefEnum.apply,
+ file
+ )
+ }
+
+ }
+
+}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/FormalParamsXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/FormalParamsXmlFppWriter.scala
new file mode 100644
index 000000000..ed37c22c7
--- /dev/null
+++ b/compiler/lib/src/main/scala/codegen/XmlFppWriter/FormalParamsXmlFppWriter.scala
@@ -0,0 +1,72 @@
+package fpp.compiler.codegen
+
+import fpp.compiler.ast._
+import fpp.compiler.codegen._
+import fpp.compiler.util._
+import scala.xml.Node
+
+/** Writes out F Prime XML arguments as FPP formal parameters */
+object FormalParamsXmlFppWriter extends LineUtils {
+
+ /** Translates an XML type to an FPP type name */
+ def translateType(file: XmlFppWriter.File): Node => Result.Result[Ast.TypeName] =
+ file.translateType(node => file.getAttribute(node, "type")) _
+
+ /** Extracts a formal parameter */
+ def formalParamAnnotatedNode(file: XmlFppWriter.File, node: scala.xml.Node):
+ Result.Result[Ast.Annotated[AstNode[Ast.FormalParam]]] =
+ for {
+ name <- file.getAttribute(node, "name")
+ kind <- XmlFppWriter.getAttributeOpt(node, "pass_by") match {
+ case Some("value") => Right(Ast.FormalParam.Value)
+ case Some("reference") => Right(Ast.FormalParam.Ref)
+ case Some(_) => Left(file.invalidAttribute("pass_by", node))
+ case None => Right(Ast.FormalParam.Value)
+ }
+ typeName <- translateType(file)(node)
+ comment <- file.getComment(node)
+ }
+ yield {
+ val typeNameNode = AstNode.create(typeName)
+ val data = Ast.FormalParam(kind, name, typeNameNode)
+ val node = AstNode.create(data)
+ (Nil, node, comment)
+ }
+
+ /** Extracts enum definitions from argument and return types */
+ def defEnumAnnotatedList(file: XmlFppWriter.File, node: scala.xml.Node):
+ Result.Result[List[Ast.Annotated[Ast.DefEnum]]] =
+ for {
+ nodeOpt <- file.getSingleChildOpt(node, "args")
+ nodes <- nodeOpt match {
+ case Some(node) => Right((node \ "arg").toList)
+ case None => Right(Nil)
+ }
+ retTypeNodeOpt <- file.getSingleChildOpt(node, "return")
+ nodes <- retTypeNodeOpt match {
+ case Some(node) => Right(nodes :+ node)
+ case None => Right(nodes)
+ }
+ enumOpts <- Result.map(
+ nodes,
+ XmlFppWriter.FppBuilder.InlineEnumBuilder.defEnumAnnotatedOpt(file)
+ )
+ }
+ yield enumOpts.filter(_.isDefined).map(_.get)
+
+ /** Extracts formal parameters */
+ def formalParamList(
+ file: XmlFppWriter.File,
+ node: scala.xml.Node
+ ): Result.Result[Ast.FormalParamList] =
+ for {
+ childOpt <- file.getSingleChildOpt(node, "args")
+ result <- childOpt match {
+ case Some(child) =>
+ val args = child \ "arg"
+ Result.map(args.toList, formalParamAnnotatedNode(file, _))
+ case None => Right(Nil)
+ }
+ } yield result
+
+}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/PortXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/PortXmlFppWriter.scala
new file mode 100644
index 000000000..c40d1178d
--- /dev/null
+++ b/compiler/lib/src/main/scala/codegen/XmlFppWriter/PortXmlFppWriter.scala
@@ -0,0 +1,62 @@
+package fpp.compiler.codegen
+
+import fpp.compiler.ast._
+import fpp.compiler.codegen._
+import fpp.compiler.util._
+import scala.xml.Node
+
+/** Writes out an F Prime XML port as FPP source */
+object PortXmlFppWriter extends LineUtils {
+
+ def writeFile(file: XmlFppWriter.File): XmlFppWriter.Result =
+ for (tuMember <- FppBuilder.tuMemberList(file))
+ yield FppWriter.tuMemberList(tuMember)
+
+ /** Builds FPP for translating Serializable XML */
+ private object FppBuilder {
+
+ /** Translates an XML type to an FPP type name */
+ def translateType(file: XmlFppWriter.File): Node => Result.Result[Ast.TypeName] =
+ file.translateType(node => file.getAttribute(node, "type")) _
+
+ /** Extracts the return type */
+ def returnTypeOpt(file: XmlFppWriter.File):
+ Result.Result[Option[AstNode[Ast.TypeName]]] =
+ file.getSingleChildOpt(file.elem, "return") match {
+ case Right(Some(child)) =>
+ for (typeName <- translateType(file)(child))
+ yield Some(AstNode.create(typeName))
+ case Right(None) => Right(None)
+ case Left(e) => Left(e)
+ }
+
+ /** Generates the list of TU members */
+ def tuMemberList(file: XmlFppWriter.File): Result.Result[List[Ast.TUMember]] =
+ for {
+ enums <- FormalParamsXmlFppWriter.defEnumAnnotatedList(file, file.elem)
+ port <- defPortAnnotated(file)
+ }
+ yield XmlFppWriter.tuMemberList(
+ enums,
+ Ast.TUMember.DefEnum.apply,
+ Ast.ModuleMember.DefEnum.apply,
+ port,
+ Ast.TUMember.DefPort.apply,
+ Ast.ModuleMember.DefPort.apply,
+ file
+ )
+
+ /** Translates the port */
+ def defPortAnnotated(file: XmlFppWriter.File):
+ Result.Result[Ast.Annotated[Ast.DefPort]] =
+ for {
+ comment <- file.getComment(file.elem)
+ name <- file.getAttribute(file.elem, "name")
+ params <- FormalParamsXmlFppWriter.formalParamList(file, file.elem)
+ returnType <- returnTypeOpt(file)
+ }
+ yield (comment, Ast.DefPort(name, params, returnType), Nil)
+
+ }
+
+}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/StructXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/StructXmlFppWriter.scala
new file mode 100644
index 000000000..c1a276b56
--- /dev/null
+++ b/compiler/lib/src/main/scala/codegen/XmlFppWriter/StructXmlFppWriter.scala
@@ -0,0 +1,106 @@
+package fpp.compiler.codegen
+
+import fpp.compiler.ast._
+import fpp.compiler.codegen._
+import fpp.compiler.util._
+import scala.xml.Node
+
+/** Writes out an F Prime XML Serializable struct as FPP source */
+object StructXmlFppWriter extends LineUtils {
+
+ def writeFile(file: XmlFppWriter.File): XmlFppWriter.Result =
+ for (tuMember <- FppBuilder.tuMemberList(file))
+ yield FppWriter.tuMemberList(tuMember)
+
+ /** Builds FPP for translating Serializable XML */
+ private object FppBuilder {
+
+ /** Translates an XML type to an FPP type name */
+ def translateType(file: XmlFppWriter.File): Node => Result.Result[Ast.TypeName] =
+ file.translateType(node => file.getAttribute(node, "type")) _
+
+ /** Extracts a struct type member */
+ def structTypeMemberAnnotatedNode(
+ file: XmlFppWriter.File,
+ node: scala.xml.Node
+ ): Result.Result[Ast.Annotated[AstNode[Ast.StructTypeMember]]] = {
+ for {
+ structName <- file.getAttribute(file.elem, "name")
+ memberName <- file.getAttribute(node, "name")
+ xmlType <- file.getAttribute(node, "type")
+ memberType <- translateType(file)(node)
+ }
+ yield {
+ val xmlSizeOpt = XmlFppWriter.getAttributeOpt(node, "array_size")
+ val sizeOpt = (memberType, xmlSizeOpt) match {
+ case (_, Some(size)) => Some(size)
+ case _ => None
+ }
+ val xmlFormatOpt = XmlFppWriter.getAttributeOpt(node, "format")
+ val (fppFormatOpt, pre) =
+ XmlFppWriter.FppBuilder.translateFormatOpt(xmlFormatOpt)
+ val data = Ast.StructTypeMember(
+ memberName,
+ sizeOpt.map(size => AstNode.create(Ast.ExprLiteralInt(size))),
+ AstNode.create(memberType),
+ fppFormatOpt.map(AstNode.create(_))
+ )
+ val astNode = AstNode.create(data)
+ val post = XmlFppWriter.getAttributeComment(node)
+ (pre, astNode, post)
+ }
+ }
+
+ /** Extracts enum definitions from struct members */
+ def defEnumAnnotatedList(file: XmlFppWriter.File):
+ Result.Result[List[Ast.Annotated[Ast.DefEnum]]] =
+ for {
+ child <- file.getSingleChild(file.elem, "members")
+ members <- Right((child \ "member").toList)
+ enumOpts <- Result.map(
+ members,
+ XmlFppWriter.FppBuilder.InlineEnumBuilder.defEnumAnnotatedOpt(file)
+ )
+ }
+ yield enumOpts.filter(_.isDefined).map(_.get)
+
+ /** Extracts struct type members */
+ def structTypeMemberAnnotatedNodeList(file: XmlFppWriter.File):
+ Result.Result[List[Ast.Annotated[AstNode[Ast.StructTypeMember]]]] =
+ for {
+ child <- file.getSingleChild(file.elem, "members")
+ result <- {
+ val members = child \ "member"
+ Result.map(members.toList, structTypeMemberAnnotatedNode(file, _))
+ }
+ } yield result
+
+ /** Generates the list of TU members */
+ def tuMemberList(file: XmlFppWriter.File): Result.Result[List[Ast.TUMember]] =
+ for {
+ enums <- defEnumAnnotatedList(file)
+ struct <- defStructAnnotated(file)
+ }
+ yield XmlFppWriter.tuMemberList(
+ enums,
+ Ast.TUMember.DefEnum.apply,
+ Ast.ModuleMember.DefEnum.apply,
+ struct,
+ Ast.TUMember.DefStruct.apply,
+ Ast.ModuleMember.DefStruct.apply,
+ file,
+ )
+
+ /** Translates the struct type */
+ def defStructAnnotated(file: XmlFppWriter.File):
+ Result.Result[Ast.Annotated[Ast.DefStruct]] =
+ for {
+ comment <- file.getComment(file.elem)
+ structName <- file.getAttribute(file.elem, "name")
+ members <- structTypeMemberAnnotatedNodeList(file)
+ }
+ yield (comment, Ast.DefStruct(structName, members, None), Nil)
+
+ }
+
+}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/TlmPacketSetXmlWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/TlmPacketSetXmlWriter.scala
new file mode 100644
index 000000000..8704d34f7
--- /dev/null
+++ b/compiler/lib/src/main/scala/codegen/XmlFppWriter/TlmPacketSetXmlWriter.scala
@@ -0,0 +1,121 @@
+package fpp.compiler.codegen
+
+import fpp.compiler.ast._
+import fpp.compiler.codegen._
+import fpp.compiler.util._
+import scala.xml.Node
+
+/** Writes out an F Prime XML telemetry packet set as FPP source */
+object TlmPacketSetXmlFppWriter extends LineUtils {
+
+ def writeFile(file: XmlFppWriter.File): XmlFppWriter.Result =
+ for (topologyMember <- FppBuilder.topologyMember(file))
+ yield FppWriter.topologyMember(topologyMember)
+
+ /** Builds FPP for translating telemetry packet XML */
+ private object FppBuilder {
+
+ /** Generates the topology member */
+ def topologyMember(file: XmlFppWriter.File): Result.Result[Ast.TopologyMember] =
+ for (tps <- specTlmPacketSetAnnotated(file))
+ yield {
+ val node = XmlFppWriter.transformNode (Ast.TopologyMember.SpecTlmPacketSet.apply) (tps)
+ Ast.TopologyMember(node)
+ }
+
+ /** Extracts a telemetry packet set member */
+ def tlmPacketSetMember(
+ file: XmlFppWriter.File,
+ xmlNode: scala.xml.Node
+ ): Result.Result[Ast.TlmPacketSetMember] =
+ for {
+ name <- file.getAttribute(xmlNode, "name")
+ group <- file.translateInteger(xmlNode, "level")
+ members <- tlmPacketMemberList(file, xmlNode)
+ }
+ yield {
+ val id = XmlFppWriter.FppBuilder.translateIntegerOpt(xmlNode, "id")
+ val data = Ast.SpecTlmPacket(
+ name,
+ id,
+ group,
+ members
+ )
+ val node = Ast.TlmPacketSetMember.SpecTlmPacket(AstNode.create(data))
+ val aNode = (Nil, node, Nil)
+ Ast.TlmPacketSetMember(aNode)
+ }
+
+ /** Extracts a telemetry channel identifier */
+ def tlmChannelIdentifier(
+ file: XmlFppWriter.File,
+ name: String
+ ): Result.Result[Ast.TlmChannelIdentifier] =
+ name.split("\\.").toList.reverse match {
+ case head :: tail =>
+ val nodeList = tail.reverse.map(AstNode.create)
+ val instance = Ast.QualIdent.fromNodeList(nodeList)
+ Right(
+ Ast.TlmChannelIdentifier(
+ AstNode.create(instance),
+ AstNode.create(head)
+ )
+ )
+ case _ => Left(file.semanticError(s"channel name $name is not well-formed"))
+ }
+
+ /** Extracts a telemetry channel identifier node */
+ def tlmChannelIdentifierNode(
+ file: XmlFppWriter.File,
+ xmlNode: scala.xml.Node
+ ): Result.Result[AstNode[Ast.TlmChannelIdentifier]] =
+ for {
+ name <- file.getAttribute(xmlNode, "name")
+ tci <- tlmChannelIdentifier(file, name)
+ }
+ yield AstNode.create(tci)
+
+ /** Extracts a telemetry packet member */
+ def tlmPacketMember(
+ file: XmlFppWriter.File,
+ xmlNode: scala.xml.Node
+ ): Result.Result[Ast.TlmPacketMember] =
+ tlmChannelIdentifierNode(file, xmlNode).map(Ast.TlmPacketMember.TlmChannelIdentifier.apply)
+
+ /** Extracts telemetry packet members */
+ def tlmPacketMemberList(file: XmlFppWriter.File, xmlNode: scala.xml.Node):
+ Result.Result[List[Ast.TlmPacketMember]] = {
+ val channels = xmlNode \ "channel"
+ Result.map(channels.toList, tlmPacketMember(file, _))
+ }
+
+ /** Extracts telemetry packet set members */
+ def tlmPacketSetMemberList(file: XmlFppWriter.File):
+ Result.Result[List[Ast.TlmPacketSetMember]] = {
+ val packets = file.elem \ "packet"
+ Result.map(packets.toList, tlmPacketSetMember(file, _))
+ }
+
+ /** Extracts omitted channels */
+ def omittedChannelList(file: XmlFppWriter.File):
+ Result.Result[List[AstNode[Ast.TlmChannelIdentifier]]] =
+ for {
+ child <- file.getSingleChild(file.elem, "ignore")
+ channels <- Right(child \ "channel")
+ channelIds <- Result.map(channels.toList, tlmChannelIdentifierNode(file, _))
+ }
+ yield channelIds
+
+ /** Translates the telemetry packet set */
+ def specTlmPacketSetAnnotated(file: XmlFppWriter.File):
+ Result.Result[Ast.Annotated[Ast.SpecTlmPacketSet]] =
+ for {
+ name <- file.getAttribute(file.elem, "name")
+ members <- tlmPacketSetMemberList(file)
+ omitted <- omittedChannelList(file)
+ }
+ yield (Nil, Ast.SpecTlmPacketSet(name, members, omitted), Nil)
+
+ }
+
+}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/TopologyXmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/TopologyXmlFppWriter.scala
new file mode 100644
index 000000000..7423ec3fc
--- /dev/null
+++ b/compiler/lib/src/main/scala/codegen/XmlFppWriter/TopologyXmlFppWriter.scala
@@ -0,0 +1,186 @@
+package fpp.compiler.codegen
+
+import fpp.compiler.ast._
+import fpp.compiler.codegen._
+import fpp.compiler.util._
+
+/** Writes out an F Prime XML topology as FPP source */
+object TopologyXmlFppWriter extends LineUtils {
+
+ def writeFile(file: XmlFppWriter.File): XmlFppWriter.Result =
+ for (tuMember <- FppBuilder.tuMemberList(file))
+ yield FppWriter.tuMemberList(tuMember)
+
+ /** Builds FPP for translating topology XML */
+ private object FppBuilder {
+
+ /** Generates the list of TU members */
+ def tuMemberList(file: XmlFppWriter.File): Result.Result[List[Ast.TUMember]] =
+ for {
+ instances <- defComponentInstanceAnnotatedList(file)
+ top <- defTopologyAnnotated(file)
+ }
+ yield XmlFppWriter.tuMemberList(
+ instances,
+ Ast.TUMember.DefComponentInstance.apply,
+ Ast.ModuleMember.DefComponentInstance.apply,
+ top,
+ Ast.TUMember.DefTopology.apply,
+ Ast.ModuleMember.DefTopology.apply,
+ file,
+ )
+
+ /** Translates a component instance definition */
+ def defComponentInstanceAnnotated(
+ file: XmlFppWriter.File,
+ node: scala.xml.Node
+ ): Result.Result[Ast.Annotated[Ast.DefComponentInstance]] =
+ for {
+ name <- file.getAttribute(node, "name")
+ componentName <- file.getAttribute(node, "type")
+ baseId <- file.getAttribute(node, "base_id")
+ }
+ yield {
+ val componentQid = Ast.QualIdent.fromNodeList(
+ (XmlFppWriter.getAttributeNamespace(node) :+ componentName).
+ map(AstNode.create(_))
+ )
+ (
+ Nil,
+ Ast.DefComponentInstance(
+ name,
+ AstNode.create(componentQid),
+ AstNode.create(Ast.ExprLiteralInt(baseId)),
+ None,
+ None,
+ None,
+ None,
+ None,
+ None,
+ Nil
+ ),
+ Nil
+ )
+ }
+
+ /** Translates a component instance specifier */
+ def specCompInstanceAnnotated(
+ file: XmlFppWriter.File,
+ node: scala.xml.Node
+ ): Result.Result[Ast.Annotated[Ast.SpecCompInstance]] =
+ for (name <- file.getAttribute(node, "name"))
+ yield {
+ val qid = XmlFppWriter.FppBuilder.translateQualIdent(name)
+ (
+ Nil,
+ Ast.SpecCompInstance(Ast.Visibility.Public, qid),
+ Nil
+ )
+ }
+
+ /** Translates the component instance definitions */
+ def defComponentInstanceAnnotatedList(file: XmlFppWriter.File):
+ Result.Result[List[Ast.Annotated[Ast.DefComponentInstance]]] = {
+ val instances = file.elem \ "instance"
+ Result.map(instances.toList, defComponentInstanceAnnotated(file, _))
+ }
+
+ /** Translates the component instance specifiers */
+ def specCompInstanceAnnotatedList(file: XmlFppWriter.File):
+ Result.Result[List[Ast.Annotated[Ast.SpecCompInstance]]] = {
+ val instances = file.elem \ "instance"
+ Result.map(instances.toList, specCompInstanceAnnotated(file, _))
+ }
+
+ type Endpoint = (
+ AstNode[Ast.PortInstanceIdentifier],
+ Option[AstNode[Ast.Expr]]
+ )
+
+ /** Translates a connection endpoint */
+ def endpoint(
+ file: XmlFppWriter.File,
+ node: scala.xml.Node
+ ): Result.Result[Endpoint] =
+ for {
+ xmlInstance <- file.getAttribute(node, "component")
+ port <- file.getAttribute(node, "port")
+ portNumber <- file.getAttribute(node, "num")
+ }
+ yield {
+ val pii = Ast.PortInstanceIdentifier(
+ XmlFppWriter.FppBuilder.translateQualIdent(xmlInstance),
+ AstNode.create(port)
+ )
+ val e = Ast.ExprLiteralInt(portNumber)
+ (AstNode.create(pii), Some(AstNode.create(e)))
+ }
+
+ /** Translates a connection */
+ def connection(
+ file: XmlFppWriter.File,
+ node: scala.xml.Node
+ ): Result.Result[Ast.SpecConnectionGraph.Connection] =
+ for {
+ xmlSource <- file.getSingleChild(node, "source")
+ from <- endpoint(file, xmlSource)
+ xmlTarget <- file.getSingleChild(node, "target")
+ to <- endpoint(file, xmlTarget)
+ }
+ yield {
+ Ast.SpecConnectionGraph.Connection(
+ false,
+ from._1,
+ from._2,
+ to._1,
+ to._2
+ )
+ }
+
+ /** Translates the connections */
+ def connectionList(file: XmlFppWriter.File):
+ Result.Result[List[Ast.SpecConnectionGraph.Connection]] = {
+ val connections = file.elem \ "connection"
+ Result.map(connections.toList, connection(file, _))
+ }
+
+ /** Translates the connection graph */
+ def specConnectionGraphAnnotated(file: XmlFppWriter.File):
+ Result.Result[Ast.Annotated[Ast.SpecConnectionGraph]] =
+ for (connections <- connectionList(file))
+ yield (
+ Nil,
+ Ast.SpecConnectionGraph.Direct("XML", connections),
+ Nil
+ )
+
+ /** Translates the topology */
+ def defTopologyAnnotated(file: XmlFppWriter.File):
+ Result.Result[Ast.Annotated[Ast.DefTopology]] =
+ for {
+ name <- file.getAttribute(file.elem, "name")
+ instancesAnnotated <- specCompInstanceAnnotatedList(file)
+ graphAnnotated <- specConnectionGraphAnnotated(file)
+ }
+ yield {
+ def member[T]
+ (memberNodeConstructor: AstNode[T] => Ast.TopologyMember.Node)
+ (ta: Ast.Annotated[T]) = {
+ val (a1, t, a2) = ta
+ val node = AstNode.create(t)
+ val memberNode = memberNodeConstructor(node)
+ Ast.TopologyMember(a1, memberNode, a2)
+ }
+ val instanceMembers = instancesAnnotated.map(
+ member(Ast.TopologyMember.SpecCompInstance.apply)
+ )
+ val graphMember = member(Ast.TopologyMember.SpecConnectionGraph.apply)(
+ graphAnnotated
+ )
+ val members = instanceMembers :+ graphMember
+ (Nil, Ast.DefTopology(name, members), Nil)
+ }
+
+ }
+
+}
diff --git a/compiler/lib/src/main/scala/codegen/XmlFppWriter/XmlFppWriter.scala b/compiler/lib/src/main/scala/codegen/XmlFppWriter/XmlFppWriter.scala
new file mode 100644
index 000000000..df5e68028
--- /dev/null
+++ b/compiler/lib/src/main/scala/codegen/XmlFppWriter/XmlFppWriter.scala
@@ -0,0 +1,435 @@
+package fpp.compiler.codegen
+
+import fpp.compiler.ast._
+import fpp.compiler.codegen._
+import fpp.compiler.util._
+
+/** Writes F Prime XML as FPP source */
+object XmlFppWriter extends LineUtils {
+
+ type Result = Result.Result[List[Line]]
+
+ /** An F Prime XML file */
+ case class File(
+ /** The file name */
+ name: String,
+ /** The XML element */
+ elem: scala.xml.Elem
+ ) {
+
+ /** Constructs an error containing the file name */
+ def error(e: (String) => Error): Error = e(name)
+
+ /** Constructs a semantic error with the given message */
+ def semanticError(message: String): Error = error(XmlError.SemanticError(_, message))
+
+ /** Gets an attribute from a node, returning an error if it is not there */
+ def getAttribute(node: scala.xml.Node, name: String): Result.Result[String] =
+ getAttributeOpt(node, name) match {
+ case Some(s) => Right(s)
+ case None => Left(semanticError(s"missing attribute $name for node ${node.toString}"))
+ }
+
+ /** Gets a comment from a node, returning an empty list if it is not there */
+ def getComment(node: scala.xml.Node): Result.Result[List[String]] =
+ for (childOpt <- getSingleChildOpt(node, "comment"))
+ yield {
+ def removeOuterBlanks(list: List[String]) = {
+ def removeLeadingBlanks(list: List[String]): List[String] =
+ list match {
+ case "" :: tail => removeLeadingBlanks(tail)
+ case _ => list
+ }
+ def removeTrailingBlanks(list: List[String]) =
+ removeLeadingBlanks(list.reverse).reverse
+ removeTrailingBlanks(removeLeadingBlanks(list))
+ }
+ childOpt match {
+ case Some(node) => {
+ val list = node.child.map(_.toString.split("\n").map(_.trim)).flatten.toList
+ removeOuterBlanks(list)
+ }
+ case None => Nil
+ }
+ }
+
+ /** Gets the integer value attribute from a node */
+ def getIntegerValueAttribute(defaultValue: BigInt)(node: scala.xml.Node):
+ Result.Result[BigInt]=
+ getAttributeOpt(node, "value") match {
+ case Some(value) =>
+ try {
+ Right(BigInt(value))
+ } catch {
+ case _: Exception => Left(
+ semanticError(s"invalid value $value for node ${node.toString}")
+ )
+ }
+ case None => Right(defaultValue)
+ }
+
+ /** Gets a single named child from a node, returning an error if it is not there */
+ def getSingleChild(node: scala.xml.Node, name: String): Result.Result[scala.xml.Node] =
+ getSingleChildOpt(node, name) match {
+ case Right(Some(child)) => Right(child)
+ case Right(None) => Left(semanticError(s"missing child $name for node ${node.toString}"))
+ case Left(e) => Left(e)
+ }
+
+ /** Gets an optional single named child from a node */
+ def getSingleChildOpt(node: scala.xml.Node, name: String): Result.Result[Option[scala.xml.Node]] =
+ (node \ name).toList match {
+ case head :: Nil => Right(Some(head))
+ case Nil => Right(None)
+ case _ => Left(semanticError(s"multiple child nodes $name for node ${node.toString}"))
+ }
+
+ /** Gets the unique child of a node */
+ def getUniqueChild(node: scala.xml.Node): Result.Result[scala.xml.Node] =
+ node.child.size match {
+ case 0 => Left(semanticError(s"missing child for node ${node.toString}"))
+ case 1 => Right(node.child.head)
+ case _ => Left(semanticError(s"too many children of node ${node.toString}"))
+ }
+
+ /** Reports an invalid attribute */
+ def invalidAttribute(name: String, node: scala.xml.Node): Error =
+ semanticError(s"invalid attribute $name in node ${node.toString}")
+
+ /** Translates a integer attribute */
+ def translateInteger(xmlNode: scala.xml.Node, name: String): Result.Result[AstNode[Ast.ExprLiteralInt]] =
+ getAttribute(xmlNode, name).map(
+ text => AstNode.create(Ast.ExprLiteralInt(text))
+ )
+
+ /** Translates an XML type to an FPP type name */
+ def translateType
+ (getType: scala.xml.Node => Result.Result[String])
+ (node: scala.xml.Node): Result.Result[Ast.TypeName] =
+ for {
+ xmlType <- getType(node)
+ result <- {
+ val sizeOpt = getAttributeOpt(node, "size")
+ xmlType match {
+ case "I16" => Right(Ast.TypeNameInt(Ast.I16()))
+ case "I32" => Right(Ast.TypeNameInt(Ast.I32()))
+ case "I64" => Right(Ast.TypeNameInt(Ast.I64()))
+ case "I8" => Right(Ast.TypeNameInt(Ast.I8()))
+ case "F32" => Right(Ast.TypeNameFloat(Ast.F32()))
+ case "F64" => Right(Ast.TypeNameFloat(Ast.F64()))
+ case "U16" => Right(Ast.TypeNameInt(Ast.U16()))
+ case "U32" => Right(Ast.TypeNameInt(Ast.U32()))
+ case "U64" => Right(Ast.TypeNameInt(Ast.U64()))
+ case "U8" => Right(Ast.TypeNameInt(Ast.U8()))
+ case "bool" => Right(Ast.TypeNameBool)
+ case "ENUM" => for {
+ enumeration <- getSingleChild(node, "enum")
+ name <- getAttribute(enumeration, "name")
+ } yield FppBuilder.translateQualIdentType(name)
+ case "string" => Right(Ast.TypeNameString(
+ sizeOpt.map((size: String) => AstNode.create(Ast.ExprLiteralInt(size)))
+ ))
+ case _ => Right(FppBuilder.translateQualIdentType(xmlType))
+ }
+ }
+ } yield result
+
+ /** Writes a file as lines */
+ def write: Result = {
+ val eltType = elem.label
+ for {
+ body <- eltType match {
+ case "array" => ArrayXmlFppWriter.writeFile(this)
+ case "assembly" => TopologyXmlFppWriter.writeFile(this)
+ case "commands" => ComponentXmlFppWriter.writeCommandsFile(this)
+ case "component" => ComponentXmlFppWriter.writeComponentFile(this)
+ case "enum" => EnumXmlFppWriter.writeFile(this)
+ case "events" => ComponentXmlFppWriter.writeEventsFile(this)
+ case "interface" => PortXmlFppWriter.writeFile(this)
+ case "internal_interfaces" => ComponentXmlFppWriter.writeInternalPortsFile(this)
+ case "packets" => TlmPacketSetXmlFppWriter.writeFile(this)
+ case "parameters" => ComponentXmlFppWriter.writeParamsFile(this)
+ case "ports" => ComponentXmlFppWriter.writePortsFile(this)
+ case "serializable" => StructXmlFppWriter.writeFile(this)
+ case "telemetry" => ComponentXmlFppWriter.writeTlmChannelsFile(this)
+ case _ => Left(semanticError(s"invalid element type $eltType"))
+ }
+ }
+ yield body
+ }
+
+ }
+
+ /** Constructs a translator note */
+ def constructNote(s: String): String = "FPP from XML: " ++ s
+
+ /** Gets an attribute comment */
+ def getAttributeComment(node: scala.xml.Node): List[String] =
+ getAttributeOpt(node, "comment") match {
+ case Some(s) => s.split("\n").map(_.trim).toList
+ case None => Nil
+ }
+
+ /** Gets an attribute namespace */
+ def getAttributeNamespace(node: scala.xml.Node): List[String] =
+ getAttributeOpt(node, "namespace") match {
+ case Some(s) => s.split("::").toList
+ case None => Nil
+ }
+
+ /** Gets an optional attribute */
+ def getAttributeOpt(node: scala.xml.Node, name: String): Option[String] =
+ node.attribute(name).map(_.toList.head.toString)
+
+ /** Writes a file list */
+ def writeFileList(fileList: List[File]): Result.Result[List[Line]] = {
+ for (files <- Result.map(fileList, _.write))
+ yield Line.blankSeparated (identity[List[Line]]) (files)
+ }
+
+ /** Builds a TU member from a single annotated element */
+ def tuMember[T](
+ aT: Ast.Annotated[T],
+ tumConstructor: AstNode[T] => Ast.TUMember.Node,
+ moduleConstructor: AstNode[T] => Ast.ModuleMember.Node,
+ file: XmlFppWriter.File
+ ): Ast.TUMember = tuMemberList(
+ Nil: List[Ast.Annotated[Ast.DefEnum]],
+ Ast.TUMember.DefEnum.apply,
+ Ast.ModuleMember.DefEnum.apply,
+ aT,
+ tumConstructor,
+ moduleConstructor,
+ file
+ ).head
+
+ /** Transforms an annotated AST node */
+ def transformNode[A,B](transform: AstNode[A] => B)(a: Ast.Annotated[A]): (List[String], B, List[String]) =
+ (a._1, transform(AstNode.create(a._2)), a._3)
+
+ /** Builds a list of TU members from a list of annotated A elements
+ * followed by a single annotated B element */
+ def tuMemberList[A,B](
+ aNodesA: List[Ast.Annotated[A]],
+ tumConstructorA: AstNode[A] => Ast.TUMember.Node,
+ moduleConstructorA: AstNode[A] => Ast.ModuleMember.Node,
+ aNodeB: Ast.Annotated[B],
+ tumConstructorB: AstNode[B] => Ast.TUMember.Node,
+ moduleConstructorB: AstNode[B] => Ast.ModuleMember.Node,
+ file: XmlFppWriter.File,
+ ): List[Ast.TUMember] = {
+ val moduleNames = XmlFppWriter.getAttributeNamespace(file.elem)
+ val memberNodes = moduleNames match {
+ case Nil => {
+ // Generate a list of TU members
+ val aNodesA1 = aNodesA.map(transformNode(tumConstructorA))
+ val aNodeB1 = transformNode(tumConstructorB)(aNodeB)
+ aNodesA1 :+ aNodeB1
+ }
+ case head :: tail => {
+ // Generate a TU member consisting of one or more modules enclosing module members
+ val aNodesA1 = aNodesA.map(transformNode(moduleConstructorA))
+ val aNodeB1 = transformNode(moduleConstructorB)(aNodeB)
+ val members = aNodesA1 :+ aNodeB1
+ val members1 = XmlFppWriter.FppBuilder.encloseWithModuleMemberModules(tail.reverse)(members)
+ List(XmlFppWriter.FppBuilder.encloseWithTuMemberModule(head)(members1))
+ }
+ }
+ memberNodes.map(Ast.TUMember(_))
+ }
+
+ /** Utilities for constructing FPP ASTs */
+ object FppBuilder {
+
+ /** Encloses a list of module members with a module inside a trans unit */
+ def encloseWithTuMemberModule
+ (name: String)
+ (members: List[Ast.Annotated[Ast.ModuleMember.Node]]):
+ Ast.Annotated[Ast.TUMember.Node] =
+ encloseWithModule(Ast.TUMember.DefModule.apply)(name)(members)
+
+ /** Encloses a list of module members with zero more modules inside a module */
+ def encloseWithModuleMemberModules
+ (names: List[String])
+ (members: List[Ast.Annotated[Ast.ModuleMember.Node]]):
+ List[Ast.Annotated[Ast.ModuleMember.Node]] =
+ {
+ def encloseWithModuleMemberModule
+ (name: String)
+ (members: List[Ast.Annotated[Ast.ModuleMember.Node]]):
+ List[Ast.Annotated[Ast.ModuleMember.Node]] =
+ List(encloseWithModule(Ast.ModuleMember.DefModule.apply)(name)(members))
+ names match {
+ case Nil => members
+ case head :: tail => encloseWithModuleMemberModules(tail)(
+ encloseWithModuleMemberModule(head)(members)
+ )
+ }
+ }
+
+ /** Translates a qualified identifier type */
+ def translateQualIdentType(xmlType: String): Ast.TypeNameQualIdent =
+ Ast.TypeNameQualIdent(translateQualIdent(xmlType))
+
+ /** Translates a qualified identifier */
+ def translateQualIdent(xmlQid: String): AstNode[Ast.QualIdent] =
+ AstNode.create(
+ Ast.QualIdent.fromNodeList(
+ xmlQid.split("::").toList.map(AstNode.create(_))
+ )
+ )
+
+ /** Translates an XML format */
+ def translateFormat(xmlFormat: String): Option[String] = {
+ val repls = List(
+ ("\\{" -> "{{"),
+ ("\\}" -> "}}"),
+ ("(%ld|%d|%lu|%u|%s|%g|%llu|%lld)" -> "{}"),
+ ("%c" -> "{c}"),
+ ("(%o|%lo|%llo)" ->"{o}"),
+ ("(%x|%lx|%llx)" -> "{x}"),
+ ("%e"-> "{e}"),
+ ("%f"-> "{f}"),
+ ("%(\\.[0-9]+)e"-> "{$1e}"),
+ ("%(\\.[0-9]+)f"-> "{$1f}"),
+ ("%(\\.[0-9]+)g" -> "{$1g}")
+ )
+ val s = repls.foldLeft(xmlFormat)({ case (s, (a, b)) => s.replaceAll(a, b) })
+ if (!s.replaceAll("%%", "").contains("%"))
+ Some(s.replaceAll("%%", "%")) else None
+ }
+
+ /** Translates an optional XML format.
+ * Returns the translated format and a note. */
+ def translateFormatOpt(xmlFormatOpt: Option[String]): (Option[String], List[String]) = {
+ val fppFormatOpt = xmlFormatOpt.flatMap(FppBuilder.translateFormat(_))
+ val note = (xmlFormatOpt, fppFormatOpt) match {
+ case (Some(xmlFormat), None) =>
+ val s = "could not translate format string \"" ++ xmlFormat ++ "\""
+ List(constructNote(s))
+ case _ => Nil
+ }
+ // Represent default format "{}" more succinctly as no format
+ val format = fppFormatOpt match {
+ case Some("{}") => None
+ case _ => fppFormatOpt
+ }
+ (format, note)
+ }
+
+ /** Translates an optional integer attribute */
+ def translateIntegerOpt(xmlNode: scala.xml.Node, name: String): Option[AstNode[Ast.ExprLiteralInt]] =
+ getAttributeOpt(xmlNode, name).map(
+ text => AstNode.create(Ast.ExprLiteralInt(text))
+ )
+
+ /** Translates a value from FPP to XML */
+ def translateValue(xmlValue: String, tn: Ast.TypeName): Option[AstNode[Ast.Expr]] = {
+ val exprOpt = (xmlValue, tn) match {
+ case (_, Ast.TypeNameInt(_)) => Some(Ast.ExprLiteralInt(xmlValue))
+ case (_, Ast.TypeNameFloat(_)) => Some(Ast.ExprLiteralFloat(xmlValue))
+ case ("true", Ast.TypeNameBool) => Some(Ast.ExprLiteralBool(Ast.LiteralBool.True))
+ case ("false", Ast.TypeNameBool) => Some(Ast.ExprLiteralBool(Ast.LiteralBool.False))
+ case (_, Ast.TypeNameString(_)) => Some(Ast.ExprLiteralString(xmlValue.replaceAll("^\"|\"$", "")))
+ case _ =>
+ if ("[^A-Za-z0-9_:]".r.findAllIn(xmlValue).length > 0)
+ // Not a qualified identifier -- don't translate
+ None
+ else {
+ // C++ qualified identifier. Translate to an FPP qualified identifier.
+ val head :: tail = xmlValue.split("::").toList
+ val e = tail.foldLeft (Ast.ExprIdent(head): Ast.Expr) ((e1, s) =>
+ Ast.ExprDot(AstNode.create(e1), AstNode.create(s))
+ )
+ Some(e)
+ }
+ }
+ exprOpt.map(AstNode.create(_))
+ }
+
+ /** Encloses several member nodes with a module of variant type */
+ private def encloseWithModule[MemberType]
+ (memberTypeConstructor: AstNode[Ast.DefModule] => MemberType)
+ (name:String)
+ (memberNodes: List[Ast.Annotated[Ast.ModuleMember.Node]]):
+ Ast.Annotated[MemberType] =
+ {
+ val members = memberNodes.map(Ast.ModuleMember(_))
+ val defModule = Ast.DefModule(name, members)
+ val node = AstNode.create(defModule)
+ (Nil, memberTypeConstructor(node), Nil)
+ }
+
+ /** Extracts inline enums from XML nodes */
+ object InlineEnumBuilder {
+
+ /** Translates an enum */
+ def defEnumAnnotated(file: XmlFppWriter.File)(node: scala.xml.Node):
+ Result.Result[Ast.Annotated[Ast.DefEnum]] =
+ for {
+ name <- file.getAttribute(node, "name")
+ constants <- defEnumConstantNodeAnnotatedList(file)(node)
+ }
+ yield (Nil, Ast.DefEnum(name, None, constants, None), Nil)
+
+ /** Translates an enum if present in the node */
+ def defEnumAnnotatedOpt(file: XmlFppWriter.File)(node: scala.xml.Node):
+ Result.Result[Option[Ast.Annotated[Ast.DefEnum]]] =
+ for {
+ enumNodeOpt <- file.getSingleChildOpt(node, "enum")
+ result <- enumNodeOpt match {
+ case Some(enumNode) => defEnumAnnotated(file)(enumNode).map(Some(_))
+ case None => Right(None)
+ }
+ } yield result
+
+ /** Translates an enum constant node */
+ def defEnumConstantNodeAnnotated
+ (file: XmlFppWriter.File)
+ (defaultValue: BigInt)
+ (node: scala.xml.Node):
+ Result.Result[(Ast.Annotated[AstNode[Ast.DefEnumConstant]], BigInt)] =
+ {
+ for {
+ name <- file.getAttribute(node, "name")
+ value <- file.getIntegerValueAttribute(defaultValue)(node)
+ }
+ yield {
+ val data = Ast.DefEnumConstant(
+ name,
+ Some(AstNode.create(Ast.ExprLiteralInt(value.toString)))
+ )
+ val astNode = AstNode.create(data)
+ val comment = XmlFppWriter.getAttributeComment(node)
+ ((Nil, astNode, comment), value + 1)
+ }
+ }
+
+ /** Translates a list of enum constant nodes */
+ def defEnumConstantNodeAnnotatedList
+ (file: XmlFppWriter.File)
+ (enumNode: scala.xml.Node):
+ Result.Result[List[Ast.Annotated[AstNode[Ast.DefEnumConstant]]]] =
+ {
+ val items = (enumNode \ "item").toList
+ def fold(
+ nodes: List[scala.xml.Node],
+ defaultValue: BigInt,
+ out: List[Ast.Annotated[AstNode[Ast.DefEnumConstant]]]
+ ): Result.Result[List[Ast.Annotated[AstNode[Ast.DefEnumConstant]]]] = {
+ nodes match {
+ case Nil => Right(out.reverse)
+ case head :: tail => defEnumConstantNodeAnnotated(file)(defaultValue)(head) match {
+ case Left(e) => Left(e)
+ case Right((aNode, nextDefaultValue)) => fold(tail, nextDefaultValue, aNode :: out)
+ }
+ }
+ }
+ fold(items, BigInt(0), Nil)
+ }
+
+ }
+
+ }
+
+}
diff --git a/compiler/tools/fpp/src/main/scala/fpp-from-xml.scala b/compiler/tools/fpp/src/main/scala/fpp-from-xml.scala
new file mode 100644
index 000000000..af8984454
--- /dev/null
+++ b/compiler/tools/fpp/src/main/scala/fpp-from-xml.scala
@@ -0,0 +1,53 @@
+package fpp.compiler.tools
+
+import fpp.compiler.codegen._
+import fpp.compiler.util._
+import scopt.OParser
+
+object FPPFromXml {
+
+ case class Options(
+ files: List[File] = Nil,
+ )
+
+ def command(options: Options): Result.Result[Unit] = {
+ for {
+ xmlFiles <- Result.map(options.files, parseXmlFile)
+ lines <- XmlFppWriter.writeFileList(xmlFiles)
+ }
+ yield lines.map(Line.write(Line.stdout) _)
+ }
+
+ def parseXmlFile(file: File): Result.Result[XmlFppWriter.File] = {
+ for {
+ elem <- try {
+ Right(scala.xml.XML.loadFile(file.toString))
+ }
+ catch {
+ case e: Exception => Left(XmlError.ParseError(file.toString, e.toString))
+ }
+ }
+ yield XmlFppWriter.File(file.toString, elem)
+ }
+
+ def toolMain(args: Array[String]) =
+ Tool(name).mainMethod(args, oparser, Options(), command)
+
+ val builder = OParser.builder[Options]
+
+ val name = "fpp-from-xml"
+
+ val oparser = {
+ import builder._
+ OParser.sequence(
+ programName(name),
+ head(name, Version.v),
+ help('h', "help").text("print this message and exit"),
+ arg[String]("file ...")
+ .unbounded()
+ .action((f, c) => c.copy(files = File.fromString(f) :: c.files))
+ .text("files to translate"),
+ )
+ }
+
+}
diff --git a/compiler/tools/fpp/src/main/scala/fpp.scala b/compiler/tools/fpp/src/main/scala/fpp.scala
index 6bf2fc0cd..77f8ef04d 100644
--- a/compiler/tools/fpp/src/main/scala/fpp.scala
+++ b/compiler/tools/fpp/src/main/scala/fpp.scala
@@ -15,6 +15,7 @@ object FPP {
case "depend" => FPPDepend.toolMain(options.args)
case "filenames" => FPPFilenames.toolMain(options.args)
case "format" => FPPFormat.toolMain(options.args)
+ case "from-xml" => FPPFromXml.toolMain(options.args)
case "locate-defs" => FPPLocateDefs.toolMain(options.args)
case "locate-uses" => FPPLocateUses.toolMain(options.args)
case "syntax" => FPPSyntax.toolMain(options.args)
@@ -59,6 +60,7 @@ check performs semantic checking of FPP models
depend computes dependencies for FPP source files
filenames writes out the names of C++ files generated from FPP source files
format parses FPP source files and writes out formatted source files
+from-xml parses older F Prime XML files and converts them to FPP files
locate-defs parses FPP source files and reports the locations of symbol definitions
locate-uses parses FPP source files and reports the locations of symbols used in the files
syntax parses FPP source files into an abstract syntax tree (AST) and optionally writes out the AST
@@ -74,7 +76,7 @@ to-layout writes layout text files for connection graphs within F Prime topolo
.action((f, c) => c.copy(command = f))
.validate(c =>
c match {
- case "check" | "depend" | "filenames" | "format" |
+ case "check" | "depend" | "filenames" | "format" | "from-xml" |
"locate-defs" | "locate-uses" | "syntax" |
"to-cpp" | "to-dict" | "to-json" | "to-layout" =>
Right(None)
From d8709b6eca7ccd82921482b4ae49f10488cb9cd4 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 13:14:34 -0700
Subject: [PATCH 006/110] Put back from xml tests
---
.../test/array/array_enum.ref.txt | 3 +
.../fpp-from-xml/test/array/array_enum.xml | 10 +
.../test/array/array_qual_id.ref.txt | 3 +
.../fpp-from-xml/test/array/array_qual_id.xml | 10 +
.../test/array/array_string.ref.txt | 13 +
.../fpp-from-xml/test/array/array_string.xml | 12 +
.../tools/fpp-from-xml/test/array/check-fpp | 10 +
compiler/tools/fpp-from-xml/test/array/clean | 5 +
compiler/tools/fpp-from-xml/test/array/run | 5 +
.../tools/fpp-from-xml/test/array/tests.sh | 5 +
.../tools/fpp-from-xml/test/array/update-ref | 5 +
compiler/tools/fpp-from-xml/test/check-fpp | 10 +
compiler/tools/fpp-from-xml/test/clean | 10 +
.../fpp-from-xml/test/component/check-fpp | 28 +
.../tools/fpp-from-xml/test/component/clean | 5 +
.../test/component/commands.ref.txt | 36 +
.../fpp-from-xml/test/component/commands.xml | 48 +
.../test/component/events.ref.txt | 49 +
.../fpp-from-xml/test/component/events.xml | 62 ++
.../component/general_ports_active.ref.txt | 28 +
.../test/component/general_ports_active.xml | 26 +
.../component/general_ports_passive.ref.txt | 21 +
.../test/component/general_ports_passive.xml | 24 +
.../test/component/import_dictionary.ref.txt | 12 +
.../test/component/import_dictionary.xml | 6 +
.../test/component/internal_ports.ref.txt | 19 +
.../test/component/internal_ports.xml | 30 +
.../test/component/parameters.ref.txt | 27 +
.../test/component/parameters.xml | 23 +
.../tools/fpp-from-xml/test/component/run | 5 +
.../test/component/special_ports.ref.txt | 23 +
.../test/component/special_ports.xml | 29 +
.../test/component/telemetry.ref.txt | 28 +
.../fpp-from-xml/test/component/telemetry.xml | 18 +
.../component/telemetry_bad_limit.ref.txt | 3 +
.../test/component/telemetry_bad_limit.xml | 3 +
.../fpp-from-xml/test/component/tests.sh | 12 +
.../fpp-from-xml/test/component/update-ref | 5 +
.../tools/fpp-from-xml/test/enum/check-fpp | 10 +
compiler/tools/fpp-from-xml/test/enum/clean | 5 +
.../test/enum/enum_kwd_name.ref.txt | 9 +
.../fpp-from-xml/test/enum/enum_kwd_name.xml | 12 +
.../test/enum/enum_missing_name.ref.txt | 3 +
.../test/enum/enum_missing_name.xml | 1 +
.../tools/fpp-from-xml/test/enum/enum_ok.fpp | 16 +
.../fpp-from-xml/test/enum/enum_ok.ref.txt | 13 +
.../tools/fpp-from-xml/test/enum/enum_ok.xml | 12 +
compiler/tools/fpp-from-xml/test/enum/run | 5 +
.../tools/fpp-from-xml/test/enum/tests.sh | 5 +
.../tools/fpp-from-xml/test/enum/update-ref | 5 +
.../tools/fpp-from-xml/test/port/check-fpp | 10 +
compiler/tools/fpp-from-xml/test/port/clean | 5 +
.../test/port/port_cmd_resp.ref.txt | 19 +
.../fpp-from-xml/test/port/port_cmd_resp.xml | 26 +
.../fpp-from-xml/test/port/port_ok.ref.txt | 18 +
.../tools/fpp-from-xml/test/port/port_ok.xml | 34 +
compiler/tools/fpp-from-xml/test/port/run | 5 +
.../tools/fpp-from-xml/test/port/tests.sh | 4 +
.../tools/fpp-from-xml/test/port/update-ref | 5 +
.../tools/fpp-from-xml/test/scripts/run.sh | 47 +
.../fpp-from-xml/test/scripts/update-ref.sh | 49 +
.../tools/fpp-from-xml/test/struct/check-fpp | 10 +
compiler/tools/fpp-from-xml/test/struct/clean | 5 +
.../test/struct/member_array_of_enum.ref.txt | 19 +
.../test/struct/member_array_of_enum.xml | 15 +
compiler/tools/fpp-from-xml/test/struct/run | 5 +
.../test/struct/struct_format.ref.txt | 17 +
.../test/struct/struct_format.xml | 10 +
.../struct/struct_missing_member_name.ref.txt | 3 +
.../struct/struct_missing_member_name.xml | 5 +
.../test/struct/struct_ok.ref.txt | 24 +
.../fpp-from-xml/test/struct/struct_ok.xml | 20 +
.../tools/fpp-from-xml/test/struct/tests.sh | 6 +
.../tools/fpp-from-xml/test/struct/update-ref | 5 +
.../tools/fpp-from-xml/test/syntax/check-fpp | 10 +
compiler/tools/fpp-from-xml/test/syntax/clean | 5 +
.../test/syntax/parse_error.ref.txt | 3 +
.../fpp-from-xml/test/syntax/parse_error.xml | 1 +
compiler/tools/fpp-from-xml/test/syntax/run | 5 +
.../tools/fpp-from-xml/test/syntax/tests.sh | 3 +
.../tools/fpp-from-xml/test/syntax/update-ref | 5 +
compiler/tools/fpp-from-xml/test/test | 6 +
.../tools/fpp-from-xml/test/top/check-fpp | 15 +
compiler/tools/fpp-from-xml/test/top/clean | 5 +
.../fpp-from-xml/test/top/fprime_ref.ref.txt | 321 ++++++
.../fpp-from-xml/test/top/fprime_ref.xml | 927 ++++++++++++++++++
.../test/top/fprime_ref_packets.fpp | 5 +
.../test/top/fprime_ref_packets.ref.txt | 265 +++++
.../test/top/fprime_ref_packets.xml | 261 +++++
compiler/tools/fpp-from-xml/test/top/run | 5 +
compiler/tools/fpp-from-xml/test/top/tests.sh | 4 +
.../tools/fpp-from-xml/test/top/update-ref | 5 +
92 files changed, 2984 insertions(+)
create mode 100644 compiler/tools/fpp-from-xml/test/array/array_enum.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/array/array_enum.xml
create mode 100644 compiler/tools/fpp-from-xml/test/array/array_qual_id.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/array/array_qual_id.xml
create mode 100644 compiler/tools/fpp-from-xml/test/array/array_string.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/array/array_string.xml
create mode 100755 compiler/tools/fpp-from-xml/test/array/check-fpp
create mode 100755 compiler/tools/fpp-from-xml/test/array/clean
create mode 100755 compiler/tools/fpp-from-xml/test/array/run
create mode 100644 compiler/tools/fpp-from-xml/test/array/tests.sh
create mode 100755 compiler/tools/fpp-from-xml/test/array/update-ref
create mode 100755 compiler/tools/fpp-from-xml/test/check-fpp
create mode 100755 compiler/tools/fpp-from-xml/test/clean
create mode 100755 compiler/tools/fpp-from-xml/test/component/check-fpp
create mode 100755 compiler/tools/fpp-from-xml/test/component/clean
create mode 100644 compiler/tools/fpp-from-xml/test/component/commands.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/component/commands.xml
create mode 100644 compiler/tools/fpp-from-xml/test/component/events.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/component/events.xml
create mode 100644 compiler/tools/fpp-from-xml/test/component/general_ports_active.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/component/general_ports_active.xml
create mode 100644 compiler/tools/fpp-from-xml/test/component/general_ports_passive.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/component/general_ports_passive.xml
create mode 100644 compiler/tools/fpp-from-xml/test/component/import_dictionary.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/component/import_dictionary.xml
create mode 100644 compiler/tools/fpp-from-xml/test/component/internal_ports.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/component/internal_ports.xml
create mode 100644 compiler/tools/fpp-from-xml/test/component/parameters.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/component/parameters.xml
create mode 100755 compiler/tools/fpp-from-xml/test/component/run
create mode 100644 compiler/tools/fpp-from-xml/test/component/special_ports.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/component/special_ports.xml
create mode 100644 compiler/tools/fpp-from-xml/test/component/telemetry.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/component/telemetry.xml
create mode 100644 compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.xml
create mode 100644 compiler/tools/fpp-from-xml/test/component/tests.sh
create mode 100755 compiler/tools/fpp-from-xml/test/component/update-ref
create mode 100755 compiler/tools/fpp-from-xml/test/enum/check-fpp
create mode 100755 compiler/tools/fpp-from-xml/test/enum/clean
create mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.xml
create mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_missing_name.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_missing_name.xml
create mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_ok.fpp
create mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_ok.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/enum/enum_ok.xml
create mode 100755 compiler/tools/fpp-from-xml/test/enum/run
create mode 100644 compiler/tools/fpp-from-xml/test/enum/tests.sh
create mode 100755 compiler/tools/fpp-from-xml/test/enum/update-ref
create mode 100755 compiler/tools/fpp-from-xml/test/port/check-fpp
create mode 100755 compiler/tools/fpp-from-xml/test/port/clean
create mode 100644 compiler/tools/fpp-from-xml/test/port/port_cmd_resp.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/port/port_cmd_resp.xml
create mode 100644 compiler/tools/fpp-from-xml/test/port/port_ok.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/port/port_ok.xml
create mode 100755 compiler/tools/fpp-from-xml/test/port/run
create mode 100644 compiler/tools/fpp-from-xml/test/port/tests.sh
create mode 100755 compiler/tools/fpp-from-xml/test/port/update-ref
create mode 100644 compiler/tools/fpp-from-xml/test/scripts/run.sh
create mode 100644 compiler/tools/fpp-from-xml/test/scripts/update-ref.sh
create mode 100755 compiler/tools/fpp-from-xml/test/struct/check-fpp
create mode 100755 compiler/tools/fpp-from-xml/test/struct/clean
create mode 100644 compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.xml
create mode 100755 compiler/tools/fpp-from-xml/test/struct/run
create mode 100644 compiler/tools/fpp-from-xml/test/struct/struct_format.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/struct/struct_format.xml
create mode 100644 compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.xml
create mode 100644 compiler/tools/fpp-from-xml/test/struct/struct_ok.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/struct/struct_ok.xml
create mode 100644 compiler/tools/fpp-from-xml/test/struct/tests.sh
create mode 100755 compiler/tools/fpp-from-xml/test/struct/update-ref
create mode 100755 compiler/tools/fpp-from-xml/test/syntax/check-fpp
create mode 100755 compiler/tools/fpp-from-xml/test/syntax/clean
create mode 100644 compiler/tools/fpp-from-xml/test/syntax/parse_error.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/syntax/parse_error.xml
create mode 100755 compiler/tools/fpp-from-xml/test/syntax/run
create mode 100644 compiler/tools/fpp-from-xml/test/syntax/tests.sh
create mode 100755 compiler/tools/fpp-from-xml/test/syntax/update-ref
create mode 100755 compiler/tools/fpp-from-xml/test/test
create mode 100755 compiler/tools/fpp-from-xml/test/top/check-fpp
create mode 100755 compiler/tools/fpp-from-xml/test/top/clean
create mode 100644 compiler/tools/fpp-from-xml/test/top/fprime_ref.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/top/fprime_ref.xml
create mode 100644 compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.fpp
create mode 100644 compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.ref.txt
create mode 100644 compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.xml
create mode 100755 compiler/tools/fpp-from-xml/test/top/run
create mode 100644 compiler/tools/fpp-from-xml/test/top/tests.sh
create mode 100755 compiler/tools/fpp-from-xml/test/top/update-ref
diff --git a/compiler/tools/fpp-from-xml/test/array/array_enum.ref.txt b/compiler/tools/fpp-from-xml/test/array/array_enum.ref.txt
new file mode 100644
index 000000000..31fa40755
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/array/array_enum.ref.txt
@@ -0,0 +1,3 @@
+array ArrayEnum = [3] A.B default [
+ A.B.C
+ ]
diff --git a/compiler/tools/fpp-from-xml/test/array/array_enum.xml b/compiler/tools/fpp-from-xml/test/array/array_enum.xml
new file mode 100644
index 000000000..1cd266688
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/array/array_enum.xml
@@ -0,0 +1,10 @@
+
+
+
+ A::B
+ 3
+ %s
+
+ A::B::C
+
+
diff --git a/compiler/tools/fpp-from-xml/test/array/array_qual_id.ref.txt b/compiler/tools/fpp-from-xml/test/array/array_qual_id.ref.txt
new file mode 100644
index 000000000..123df4ff3
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/array/array_qual_id.ref.txt
@@ -0,0 +1,3 @@
+@ FPP from XML: could not translate array value [ A::B(1) ]
+@ FPP from XML: could not translate format string "%r"
+array ArrayQualId = [1] A.B
diff --git a/compiler/tools/fpp-from-xml/test/array/array_qual_id.xml b/compiler/tools/fpp-from-xml/test/array/array_qual_id.xml
new file mode 100644
index 000000000..65d36ad02
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/array/array_qual_id.xml
@@ -0,0 +1,10 @@
+
+
+
+ A::B
+ 1
+ %r
+
+ A::B(1)
+
+
diff --git a/compiler/tools/fpp-from-xml/test/array/array_string.ref.txt b/compiler/tools/fpp-from-xml/test/array/array_string.ref.txt
new file mode 100644
index 000000000..4af839b6a
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/array/array_string.ref.txt
@@ -0,0 +1,13 @@
+module A {
+
+ module B {
+
+ @ Array with string args
+ array ArrayString = [2] string size 80 default [
+ "abcd"
+ "abcd"
+ ]
+
+ }
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/array/array_string.xml b/compiler/tools/fpp-from-xml/test/array/array_string.xml
new file mode 100644
index 000000000..7170add43
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/array/array_string.xml
@@ -0,0 +1,12 @@
+
+
+
+ Array with string args
+ string
+ 2
+ %s
+
+ "abcd"
+ "abcd"
+
+
diff --git a/compiler/tools/fpp-from-xml/test/array/check-fpp b/compiler/tools/fpp-from-xml/test/array/check-fpp
new file mode 100755
index 000000000..4246bc6a9
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/array/check-fpp
@@ -0,0 +1,10 @@
+#!/bin/sh -e
+
+fpp_syntax=../../../../bin/fpp-syntax
+
+files=`find . -name '*.ref.txt' | egrep -v 'error|missing'`
+for file in $files
+do
+ echo "checking $file"
+ $fpp_syntax < $file
+done
diff --git a/compiler/tools/fpp-from-xml/test/array/clean b/compiler/tools/fpp-from-xml/test/array/clean
new file mode 100755
index 000000000..b042fe2f0
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/array/clean
@@ -0,0 +1,5 @@
+#!/bin/sh -e
+
+. ../../../../scripts/utils.sh
+
+clean
diff --git a/compiler/tools/fpp-from-xml/test/array/run b/compiler/tools/fpp-from-xml/test/array/run
new file mode 100755
index 000000000..bf6f79f51
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/array/run
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/array/tests.sh b/compiler/tools/fpp-from-xml/test/array/tests.sh
new file mode 100644
index 000000000..d5dacfb41
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/array/tests.sh
@@ -0,0 +1,5 @@
+tests="
+array_enum
+array_qual_id
+array_string
+"
diff --git a/compiler/tools/fpp-from-xml/test/array/update-ref b/compiler/tools/fpp-from-xml/test/array/update-ref
new file mode 100755
index 000000000..c905604d4
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/array/update-ref
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/check-fpp b/compiler/tools/fpp-from-xml/test/check-fpp
new file mode 100755
index 000000000..cfd924260
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/check-fpp
@@ -0,0 +1,10 @@
+#!/bin/sh -e
+
+. ../../../scripts/utils.sh
+
+for target in `find . -mindepth 2 -name check-fpp`
+do
+ dir=`dirname $target`
+ echo "[ $dir ]"
+ (cd $dir; ./check-fpp)
+done
diff --git a/compiler/tools/fpp-from-xml/test/clean b/compiler/tools/fpp-from-xml/test/clean
new file mode 100755
index 000000000..25d0c051c
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/clean
@@ -0,0 +1,10 @@
+#!/bin/sh -e
+
+. ../../../scripts/utils.sh
+
+for target in `find . -mindepth 2 -name clean`
+do
+ dir=`dirname $target`
+ (cd $dir; ./clean)
+done
+clean
diff --git a/compiler/tools/fpp-from-xml/test/component/check-fpp b/compiler/tools/fpp-from-xml/test/component/check-fpp
new file mode 100755
index 000000000..3662f5797
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/check-fpp
@@ -0,0 +1,28 @@
+#!/bin/sh -e
+
+fpp_syntax=../../../../bin/fpp-syntax
+
+# These tests are component fragments
+fragments="commands|events|internal_ports|parameters|telemetry\.ref"
+# These tests do not generate valid FPP
+skip="telemetry_bad_limit"
+
+# Check whole components
+files=`find . -name '*.ref.txt' | egrep -v "error|missing|$fragments|$skip"`
+for file in $files
+do
+ echo "checking $file"
+ $fpp_syntax < $file
+done
+
+# Check component fragments
+files=`find . -name '*.ref.txt' | egrep "$fragments"`
+for file in $files
+do
+ echo "checking $file"
+ {
+ echo 'passive component C {'
+ cat $file
+ echo '}'
+ } | $fpp_syntax
+done
diff --git a/compiler/tools/fpp-from-xml/test/component/clean b/compiler/tools/fpp-from-xml/test/component/clean
new file mode 100755
index 000000000..b042fe2f0
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/clean
@@ -0,0 +1,5 @@
+#!/bin/sh -e
+
+. ../../../../scripts/utils.sh
+
+clean
diff --git a/compiler/tools/fpp-from-xml/test/component/commands.ref.txt b/compiler/tools/fpp-from-xml/test/component/commands.ref.txt
new file mode 100644
index 000000000..d9bdd99f4
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/commands.ref.txt
@@ -0,0 +1,36 @@
+enum EventLevel {
+ FILTER_WARNING_HI = 0
+ FILTER_WARNING_LO = 1
+ FILTER_COMMAND = 2
+ FILTER_ACTIVITY_HI = 3
+ FILTER_ACTIVITY_LO = 4
+ FILTER_DIAGNOSTIC = 5
+}
+
+enum FilterEnabled {
+ FILTER_ENABLED = 0
+ FILTER_DISABLED = 1
+}
+
+@ Set filter for reporting events. Events are not stored in component.
+sync command SET_EVENT_FILTER(
+ FilterLevel: EventLevel @< Filter level
+ FilterEnable: FilterEnabled @< Filter state
+ ) \
+ opcode 0
+
+enum IdFilterEnabled {
+ ID_ENABLED = 0
+ ID_DISABLED = 1
+}
+
+@ Filter a particular ID
+async command SET_ID_FILTER(
+ ID: U32
+ IdFilterEnable: IdFilterEnabled @< ID filter state
+ ) \
+ opcode 2
+
+@ Dump the filter states via events
+async command DUMP_FILTER_STATE \
+ opcode 3
diff --git a/compiler/tools/fpp-from-xml/test/component/commands.xml b/compiler/tools/fpp-from-xml/test/component/commands.xml
new file mode 100644
index 000000000..586abb87a
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/commands.xml
@@ -0,0 +1,48 @@
+
+
+
+ Set filter for reporting events. Events are not stored in component.
+
+
+
+
+
+
+
+
+
+
+
+ Filter level
+
+
+
+
+
+
+ Filter state
+
+
+
+
+
+ Filter a particular ID
+
+
+
+
+
+
+
+
+
+ ID filter state
+
+
+
+
+
+ Dump the filter states via events
+
+
+
\ No newline at end of file
diff --git a/compiler/tools/fpp-from-xml/test/component/events.ref.txt b/compiler/tools/fpp-from-xml/test/component/events.ref.txt
new file mode 100644
index 000000000..a0dacec2c
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/events.ref.txt
@@ -0,0 +1,49 @@
+enum EventFilterState {
+ FILT_WARNING_HI = 0
+ FILT_WARNING_LO = 1
+ FILT_COMMAND = 2
+ FILT_ACTIVITY_HI = 3
+ FILT_ACTIVITY_LO = 4
+ FILT_DIAGNOSTIC = 5
+}
+
+@ Dump severity filter state
+event SEVERITY_FILTER_STATE(
+ $severity: EventFilterState @< The severity level
+ enabled: bool
+ ) \
+ severity activity low \
+ id 0 \
+ format "{} filter state. {}"
+
+@ Indicate ID is filtered
+event ID_FILTER_ENABLED(
+ ID: U32 @< The ID filtered
+ ) \
+ severity activity high \
+ id 1 \
+ format "ID {} is filtered."
+
+@ Attempted to add ID to full ID filter ID
+event ID_FILTER_LIST_FULL(
+ ID: U32 @< The ID filtered
+ ) \
+ severity warning low \
+ id 2 \
+ format "ID filter list is full. Cannot filter {} ."
+
+@ Removed an ID from the filter
+event ID_FILTER_REMOVED(
+ ID: U32 @< The ID removed
+ ) \
+ severity activity high \
+ id 3 \
+ format "ID filter ID {} removed."
+
+@ ID not in filter
+event ID_FILTER_NOT_FOUND(
+ ID: U32 @< The ID removed
+ ) \
+ severity warning low \
+ id 4 \
+ format "ID filter ID {} not found."
diff --git a/compiler/tools/fpp-from-xml/test/component/events.xml b/compiler/tools/fpp-from-xml/test/component/events.xml
new file mode 100644
index 000000000..d982a37ec
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/events.xml
@@ -0,0 +1,62 @@
+
+
+
+ Dump severity filter state
+
+
+
+
+
+
+
+
+
+
+
+ The severity level
+
+
+
+
+
+
+
+ Indicate ID is filtered
+
+
+
+ The ID filtered
+
+
+
+
+
+ Attempted to add ID to full ID filter ID
+
+
+
+ The ID filtered
+
+
+
+
+
+ Removed an ID from the filter
+
+
+
+ The ID removed
+
+
+
+
+
+ ID not in filter
+
+
+
+ The ID removed
+
+
+
+
\ No newline at end of file
diff --git a/compiler/tools/fpp-from-xml/test/component/general_ports_active.ref.txt b/compiler/tools/fpp-from-xml/test/component/general_ports_active.ref.txt
new file mode 100644
index 000000000..145b973a2
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/general_ports_active.ref.txt
@@ -0,0 +1,28 @@
+module M {
+
+ @ Component GeneralPortsActive
+ active component GeneralPortsActive {
+
+ @ Port p1
+ async input port p1: [1] P \
+ priority 10 \
+ drop
+
+ guarded input port p2: [1] P
+
+ sync input port p3: [1] P
+
+ output port p4: [10] P
+
+ async input port p5: [1] serial \
+ assert
+
+ guarded input port p6: [1] serial
+
+ sync input port p7: [1] serial
+
+ output port p8: [10] serial
+
+ }
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/component/general_ports_active.xml b/compiler/tools/fpp-from-xml/test/component/general_ports_active.xml
new file mode 100644
index 000000000..a94563d3a
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/general_ports_active.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+ Component GeneralPortsActive
+
+
+ PPortAi.xml
+
+
+
+
+ Port p1
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/component/general_ports_passive.ref.txt b/compiler/tools/fpp-from-xml/test/component/general_ports_passive.ref.txt
new file mode 100644
index 000000000..be0c28ecb
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/general_ports_passive.ref.txt
@@ -0,0 +1,21 @@
+module M {
+
+ @ Component GeneralPortsPassive
+ passive component GeneralPortsPassive {
+
+ @ Port p1
+ guarded input port p1: [1] P
+
+ sync input port p2: [1] P
+
+ output port p3: [10] P
+
+ guarded input port p4: [1] serial
+
+ sync input port p5: [1] serial
+
+ output port p6: [10] serial
+
+ }
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/component/general_ports_passive.xml b/compiler/tools/fpp-from-xml/test/component/general_ports_passive.xml
new file mode 100644
index 000000000..58a867dca
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/general_ports_passive.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ Component GeneralPortsPassive
+
+
+ PPortAi.xml
+
+
+
+
+ Port p1
+
+
+
+
+
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/component/import_dictionary.ref.txt b/compiler/tools/fpp-from-xml/test/component/import_dictionary.ref.txt
new file mode 100644
index 000000000..469e3f4bf
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/import_dictionary.ref.txt
@@ -0,0 +1,12 @@
+module M {
+
+ passive component ImportDictionary {
+
+ include "A.fppi"
+
+ @ FPP from XML: original path was B/C.xml
+ include "C.fppi"
+
+ }
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/component/import_dictionary.xml b/compiler/tools/fpp-from-xml/test/component/import_dictionary.xml
new file mode 100644
index 000000000..9c872524f
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/import_dictionary.xml
@@ -0,0 +1,6 @@
+
+
+ A.xml
+ B/C.xml
+
+
diff --git a/compiler/tools/fpp-from-xml/test/component/internal_ports.ref.txt b/compiler/tools/fpp-from-xml/test/component/internal_ports.ref.txt
new file mode 100644
index 000000000..49ee684a9
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/internal_ports.ref.txt
@@ -0,0 +1,19 @@
+enum QueueLogSeverity {
+ QUEUE_LOG_FATAL = 1 @< A fatal non-recoverable event
+ QUEUE_LOG_WARNING_HI = 2 @< A serious but recoverable event
+ QUEUE_LOG_WARNING_LO = 3 @< A less serious but recoverable event
+ QUEUE_LOG_COMMAND = 4 @< An activity related to commanding
+ QUEUE_LOG_ACTIVITY_HI = 5 @< Important informational events
+ QUEUE_LOG_ACTIVITY_LO = 6 @< Less important informational events
+ QUEUE_LOG_DIAGNOSTIC = 7 @< Software diagnostic events
+}
+
+@ internal interface to send log messages to component thread
+internal port loqQueue(
+ $id: FwEventIdType @< Log ID
+ ref timeTag: Fw.Time @< Time Tag
+ $severity: QueueLogSeverity @< The severity argument
+ ref args: Fw.LogBuffer @< Buffer containing serialized log entry
+ ) \
+ priority 1 \
+ drop
diff --git a/compiler/tools/fpp-from-xml/test/component/internal_ports.xml b/compiler/tools/fpp-from-xml/test/component/internal_ports.xml
new file mode 100644
index 000000000..a7150e193
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/internal_ports.xml
@@ -0,0 +1,30 @@
+
+
+
+ internal interface to send log messages to component thread
+
+
+
+ Log ID
+
+
+ Time Tag
+
+
+
+
+
+
+
+
+
+
+
+ The severity argument
+
+
+ Buffer containing serialized log entry
+
+
+
+
\ No newline at end of file
diff --git a/compiler/tools/fpp-from-xml/test/component/parameters.ref.txt b/compiler/tools/fpp-from-xml/test/component/parameters.ref.txt
new file mode 100644
index 000000000..57f60d8d5
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/parameters.ref.txt
@@ -0,0 +1,27 @@
+@ A test parameter
+param P1: U8 default 12 id 0 \
+ set opcode 0 \
+ save opcode 1
+
+@ A test parameter
+param P2: F32 default 13.14 id 1 \
+ set opcode 2 \
+ save opcode 3
+
+enum EventLevel {
+ FILTER_WARNING_HI = 0
+ FILTER_WARNING_LO = 1
+ FILTER_COMMAND = 2
+ FILTER_ACTIVITY_HI = 3
+ FILTER_ACTIVITY_LO = 4
+ FILTER_DIAGNOSTIC = 5
+}
+
+param P3: EventLevel default FILTER_ACTIVITY_LO id 2 \
+ set opcode 4 \
+ save opcode 5
+
+@ FPP from XML: could not translate default value T()
+param P4: T id 3 \
+ set opcode 6 \
+ save opcode 7
diff --git a/compiler/tools/fpp-from-xml/test/component/parameters.xml b/compiler/tools/fpp-from-xml/test/component/parameters.xml
new file mode 100644
index 000000000..e0072d828
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/parameters.xml
@@ -0,0 +1,23 @@
+
+
+
+ A test parameter
+
+
+
+
+ A test parameter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/component/run b/compiler/tools/fpp-from-xml/test/component/run
new file mode 100755
index 000000000..bf6f79f51
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/run
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/component/special_ports.ref.txt b/compiler/tools/fpp-from-xml/test/component/special_ports.ref.txt
new file mode 100644
index 000000000..10b79c49e
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/special_ports.ref.txt
@@ -0,0 +1,23 @@
+module M {
+
+ passive component SpecialPorts {
+
+ command recv port cmdIn
+
+ command reg port cmdRegOut
+
+ command resp port cmdResponseOut
+
+ event port eventOut
+
+ param get port paramGetOut
+
+ param set port paramSetOut
+
+ text event port textEventOut
+
+ telemetry port tlmOut
+
+ }
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/component/special_ports.xml b/compiler/tools/fpp-from-xml/test/component/special_ports.xml
new file mode 100644
index 000000000..3464d6a9d
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/special_ports.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+ CmdPortAi.xml
+ CmdRegPortAi.xml
+ CmdResponsePortAi.xml
+ LogPortAi.xml
+ LogTextPortAi.xml
+ PrmGetPortAi.xml
+ PrmSetPortAi.xml
+ TlmPortAi.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/component/telemetry.ref.txt b/compiler/tools/fpp-from-xml/test/component/telemetry.ref.txt
new file mode 100644
index 000000000..bba29c1a9
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/telemetry.ref.txt
@@ -0,0 +1,28 @@
+@ Channel C1
+telemetry C1: U32 id 0x0 update always
+
+telemetry C2: U32 id 0x1 update always
+
+telemetry C3: U32 id 0x2 update on change
+
+telemetry C4: string size 80 id 0x3 update always
+
+telemetry C5: I32 id 0x4 update always \
+ low {
+ red -3
+ orange -2
+ yellow -1
+ } \
+ high {
+ red 3
+ orange 2
+ yellow 1
+ }
+
+enum E {
+ A = 0
+ B = 1
+ C = 2
+}
+
+telemetry C6: E id 0x5 update always
diff --git a/compiler/tools/fpp-from-xml/test/component/telemetry.xml b/compiler/tools/fpp-from-xml/test/component/telemetry.xml
new file mode 100644
index 000000000..63f138f9f
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/telemetry.xml
@@ -0,0 +1,18 @@
+
+
+
+ Channel C1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.ref.txt b/compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.ref.txt
new file mode 100644
index 000000000..6f63140c9
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.ref.txt
@@ -0,0 +1,3 @@
+fpp-from-xml
+file: [ local path prefix ]/tools/fpp-from-xml/test/component/telemetry_bad_limit.xml
+error: non-numeric type in limit for channel C
diff --git a/compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.xml b/compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.xml
new file mode 100644
index 000000000..88f5681f5
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/telemetry_bad_limit.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/component/tests.sh b/compiler/tools/fpp-from-xml/test/component/tests.sh
new file mode 100644
index 000000000..dd0cdd70f
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/tests.sh
@@ -0,0 +1,12 @@
+tests="
+commands
+events
+general_ports_active
+general_ports_passive
+import_dictionary
+internal_ports
+parameters
+special_ports
+telemetry
+telemetry_bad_limit
+"
diff --git a/compiler/tools/fpp-from-xml/test/component/update-ref b/compiler/tools/fpp-from-xml/test/component/update-ref
new file mode 100755
index 000000000..c905604d4
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/component/update-ref
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/enum/check-fpp b/compiler/tools/fpp-from-xml/test/enum/check-fpp
new file mode 100755
index 000000000..4246bc6a9
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/enum/check-fpp
@@ -0,0 +1,10 @@
+#!/bin/sh -e
+
+fpp_syntax=../../../../bin/fpp-syntax
+
+files=`find . -name '*.ref.txt' | egrep -v 'error|missing'`
+for file in $files
+do
+ echo "checking $file"
+ $fpp_syntax < $file
+done
diff --git a/compiler/tools/fpp-from-xml/test/enum/clean b/compiler/tools/fpp-from-xml/test/enum/clean
new file mode 100755
index 000000000..b042fe2f0
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/enum/clean
@@ -0,0 +1,5 @@
+#!/bin/sh -e
+
+. ../../../../scripts/utils.sh
+
+clean
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.ref.txt b/compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.ref.txt
new file mode 100644
index 000000000..b5105928a
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.ref.txt
@@ -0,0 +1,9 @@
+module M {
+
+ enum $enum {
+ X = 0
+ Y = 1
+ Z = 2
+ }
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.xml b/compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.xml
new file mode 100644
index 000000000..12401e7f1
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/enum/enum_kwd_name.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_missing_name.ref.txt b/compiler/tools/fpp-from-xml/test/enum/enum_missing_name.ref.txt
new file mode 100644
index 000000000..f1e82792e
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/enum/enum_missing_name.ref.txt
@@ -0,0 +1,3 @@
+fpp-from-xml
+file: [ local path prefix ]/tools/fpp-from-xml/test/enum/enum_missing_name.xml
+error: missing attribute name for node
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_missing_name.xml b/compiler/tools/fpp-from-xml/test/enum/enum_missing_name.xml
new file mode 100644
index 000000000..124eea833
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/enum/enum_missing_name.xml
@@ -0,0 +1 @@
+
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_ok.fpp b/compiler/tools/fpp-from-xml/test/enum/enum_ok.fpp
new file mode 100644
index 000000000..2b2f71c56
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/enum/enum_ok.fpp
@@ -0,0 +1,16 @@
+module A {
+
+ module B {
+
+ @ Annotation line 1
+ @ Annotation line 2
+ enum OK {
+ X @< Annotation line 1
+ @< Annotation line 2
+ Y
+ Z
+ }
+
+ }
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_ok.ref.txt b/compiler/tools/fpp-from-xml/test/enum/enum_ok.ref.txt
new file mode 100644
index 000000000..3a66a00bc
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/enum/enum_ok.ref.txt
@@ -0,0 +1,13 @@
+module A {
+
+ module B {
+
+ enum OK {
+ X = 0 @< Annotation line 1 Annotation line 2
+ Y = 1
+ Z = 2
+ }
+
+ }
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/enum/enum_ok.xml b/compiler/tools/fpp-from-xml/test/enum/enum_ok.xml
new file mode 100644
index 000000000..72931dfb5
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/enum/enum_ok.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/enum/run b/compiler/tools/fpp-from-xml/test/enum/run
new file mode 100755
index 000000000..bf6f79f51
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/enum/run
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/enum/tests.sh b/compiler/tools/fpp-from-xml/test/enum/tests.sh
new file mode 100644
index 000000000..c74c43ec5
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/enum/tests.sh
@@ -0,0 +1,5 @@
+tests="
+enum_kwd_name
+enum_missing_name
+enum_ok
+"
diff --git a/compiler/tools/fpp-from-xml/test/enum/update-ref b/compiler/tools/fpp-from-xml/test/enum/update-ref
new file mode 100755
index 000000000..c905604d4
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/enum/update-ref
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/port/check-fpp b/compiler/tools/fpp-from-xml/test/port/check-fpp
new file mode 100755
index 000000000..4246bc6a9
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/port/check-fpp
@@ -0,0 +1,10 @@
+#!/bin/sh -e
+
+fpp_syntax=../../../../bin/fpp-syntax
+
+files=`find . -name '*.ref.txt' | egrep -v 'error|missing'`
+for file in $files
+do
+ echo "checking $file"
+ $fpp_syntax < $file
+done
diff --git a/compiler/tools/fpp-from-xml/test/port/clean b/compiler/tools/fpp-from-xml/test/port/clean
new file mode 100755
index 000000000..b042fe2f0
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/port/clean
@@ -0,0 +1,5 @@
+#!/bin/sh -e
+
+. ../../../../scripts/utils.sh
+
+clean
diff --git a/compiler/tools/fpp-from-xml/test/port/port_cmd_resp.ref.txt b/compiler/tools/fpp-from-xml/test/port/port_cmd_resp.ref.txt
new file mode 100644
index 000000000..5dd57d94b
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/port/port_cmd_resp.ref.txt
@@ -0,0 +1,19 @@
+module Fw {
+
+ enum CommandResponse {
+ COMMAND_OK = 0 @< Command successfully executed
+ COMMAND_INVALID_OPCODE = 1 @< Invalid opcode dispatched
+ COMMAND_VALIDATION_ERROR = 2 @< Command failed validation
+ COMMAND_FORMAT_ERROR = 3 @< Command failed to deserialize
+ COMMAND_EXECUTION_ERROR = 4 @< Command had execution error
+ COMMAND_BUSY = 5 @< Component busy
+ }
+
+ @ Command port
+ port CmdResponse(
+ opCode: FwOpcodeType @< Command Op Code
+ cmdSeq: U32 @< Command Sequence
+ response: CommandResponse @< The command response argument
+ )
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/port/port_cmd_resp.xml b/compiler/tools/fpp-from-xml/test/port/port_cmd_resp.xml
new file mode 100644
index 000000000..1f0076d38
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/port/port_cmd_resp.xml
@@ -0,0 +1,26 @@
+
+
+
+
+ Command port
+
+
+
+ Command Op Code
+
+
+ Command Sequence
+
+
+
+
+
+
+
+
+
+
+ The command response argument
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/port/port_ok.ref.txt b/compiler/tools/fpp-from-xml/test/port/port_ok.ref.txt
new file mode 100644
index 000000000..a3df1772a
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/port/port_ok.ref.txt
@@ -0,0 +1,18 @@
+module A {
+
+ enum Return {
+ X = 0
+ Y = 1
+ Z = 2
+ }
+
+ @ Top-level comment line 1
+ @ Top-level comment line 2
+ port OK(
+ a: U32 @< Argument a comment line 1
+ @< Argument a comment line 2
+ ref b: string size 40 @< Argument b comment line 1
+ @< Argument b comment line 2
+ ) -> Return
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/port/port_ok.xml b/compiler/tools/fpp-from-xml/test/port/port_ok.xml
new file mode 100644
index 000000000..cfd43b269
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/port/port_ok.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ Top-level comment line 1
+ Top-level comment line 2
+
+
+
+
+ Argument a comment line 1
+ Argument a comment line 2
+
+
+
+
+ Argument b comment line 1
+ Argument b comment line 2
+
+
+
+
+
+
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/port/run b/compiler/tools/fpp-from-xml/test/port/run
new file mode 100755
index 000000000..bf6f79f51
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/port/run
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/port/tests.sh b/compiler/tools/fpp-from-xml/test/port/tests.sh
new file mode 100644
index 000000000..a0ff58b9e
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/port/tests.sh
@@ -0,0 +1,4 @@
+tests="
+port_cmd_resp
+port_ok
+"
diff --git a/compiler/tools/fpp-from-xml/test/port/update-ref b/compiler/tools/fpp-from-xml/test/port/update-ref
new file mode 100755
index 000000000..c905604d4
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/port/update-ref
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/scripts/run.sh b/compiler/tools/fpp-from-xml/test/scripts/run.sh
new file mode 100644
index 000000000..34341ac09
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/scripts/run.sh
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+export LOCAL_PATH_PREFIX=`cd $COMPILER_ROOT; echo $PWD`
+
+. $COMPILER_ROOT/scripts/test-utils.sh
+
+fpp_from_xml=$COMPILER_ROOT/bin/fpp-from-xml
+
+compare()
+{
+ outfile=$1
+ diff -u $outfile.ref.txt $outfile.out.txt > $outfile.diff.txt 2>&1
+}
+
+run_test()
+{
+ args=$1
+ infile=$2
+ if test -n "$3"
+ then
+ outfile=$3
+ else
+ outfile=$infile
+ fi
+ $fpp_from_xml $args $infile.xml 2>&1 | remove_path_prefix > $outfile.out.txt
+ compare $outfile
+}
+
+. ./tests.sh
+
+# Default tests
+for t in $tests
+do
+ echo "
+$t()
+{
+ run_test '' $t
+}"
+done > default-tests.sh
+. ./default-tests.sh
+
+if test -f run.sh
+then
+ . ./run.sh
+fi
+
+run_suite $tests
diff --git a/compiler/tools/fpp-from-xml/test/scripts/update-ref.sh b/compiler/tools/fpp-from-xml/test/scripts/update-ref.sh
new file mode 100644
index 000000000..f398625ce
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/scripts/update-ref.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+export LOCAL_PATH_PREFIX=`cd $COMPILER_ROOT; echo $PWD`
+
+. $COMPILER_ROOT/scripts/test-utils.sh
+
+fpp_from_xml=$COMPILER_ROOT/bin/fpp-from-xml
+
+update()
+{
+ args=$1
+ infile=$2
+ if test -n "$3"
+ then
+ outfile=$3
+ else
+ outfile=$infile
+ fi
+ $fpp_from_xml $args $infile.xml 2>&1 | remove_path_prefix > $outfile.ref.txt
+}
+
+for file in `find . -name '*.ref.txt'`
+do
+ rm $file
+done
+
+. ./tests.sh
+
+# Default update ref
+for t in $tests
+do
+ echo "
+$t()
+{
+ update '' $t
+}"
+done > default-update-ref.sh
+. ./default-update-ref.sh
+
+if test -f update-ref.sh
+then
+ . ./update-ref.sh
+fi
+
+for t in $tests
+do
+ echo "updating ref output for $t"
+ $t
+done
diff --git a/compiler/tools/fpp-from-xml/test/struct/check-fpp b/compiler/tools/fpp-from-xml/test/struct/check-fpp
new file mode 100755
index 000000000..4246bc6a9
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/struct/check-fpp
@@ -0,0 +1,10 @@
+#!/bin/sh -e
+
+fpp_syntax=../../../../bin/fpp-syntax
+
+files=`find . -name '*.ref.txt' | egrep -v 'error|missing'`
+for file in $files
+do
+ echo "checking $file"
+ $fpp_syntax < $file
+done
diff --git a/compiler/tools/fpp-from-xml/test/struct/clean b/compiler/tools/fpp-from-xml/test/struct/clean
new file mode 100755
index 000000000..b042fe2f0
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/struct/clean
@@ -0,0 +1,5 @@
+#!/bin/sh -e
+
+. ../../../../scripts/utils.sh
+
+clean
diff --git a/compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.ref.txt b/compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.ref.txt
new file mode 100644
index 000000000..2a44a0cb0
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.ref.txt
@@ -0,0 +1,19 @@
+module A {
+
+ module B {
+
+ enum E {
+ X = 0
+ Y = 1
+ Z = 2
+ }
+
+ @ Top-level comment, line 1
+ @ Top-level comment, line 2
+ struct StructOK {
+ m: [3] E format "the value is {}"
+ }
+
+ }
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.xml b/compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.xml
new file mode 100644
index 000000000..c1e8081e4
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/struct/member_array_of_enum.xml
@@ -0,0 +1,15 @@
+
+
+ Top-level comment, line 1
+ Top-level comment, line 2
+
+
+
+
+
+
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/struct/run b/compiler/tools/fpp-from-xml/test/struct/run
new file mode 100755
index 000000000..bf6f79f51
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/struct/run
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/struct/struct_format.ref.txt b/compiler/tools/fpp-from-xml/test/struct/struct_format.ref.txt
new file mode 100644
index 000000000..419fcf70e
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/struct/struct_format.ref.txt
@@ -0,0 +1,17 @@
+module A {
+
+ module B {
+
+ struct StructFormat {
+ m1: I32
+ @ FPP from XML: could not translate format string "%q"
+ m2: bool
+ m3: string size 23
+ m4: [10] F32 format "{.3e}"
+ m5: [10] F32 format "{.3f}"
+ m6: [10] F32 format "{.3g}"
+ }
+
+ }
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/struct/struct_format.xml b/compiler/tools/fpp-from-xml/test/struct/struct_format.xml
new file mode 100644
index 000000000..34cbab2f7
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/struct/struct_format.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.ref.txt b/compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.ref.txt
new file mode 100644
index 000000000..717ea98d1
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.ref.txt
@@ -0,0 +1,3 @@
+fpp-from-xml
+file: [ local path prefix ]/tools/fpp-from-xml/test/struct/struct_missing_member_name.xml
+error: missing attribute name for node
diff --git a/compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.xml b/compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.xml
new file mode 100644
index 000000000..2c4ecdde5
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/struct/struct_missing_member_name.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/struct/struct_ok.ref.txt b/compiler/tools/fpp-from-xml/test/struct/struct_ok.ref.txt
new file mode 100644
index 000000000..73323b05b
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/struct/struct_ok.ref.txt
@@ -0,0 +1,24 @@
+module A {
+
+ module B {
+
+ enum E {
+ X = 0
+ Y = 3 @< Inline comment
+ Z = 4
+ }
+
+ @ Top-level comment, line 1
+ @ Top-level comment, line 2
+ struct StructOK {
+ m1: C.D @< Inline comment
+ m2: I32
+ m3: bool
+ m4: string size 23
+ m5: E
+ m6: [10] U32
+ }
+
+ }
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/struct/struct_ok.xml b/compiler/tools/fpp-from-xml/test/struct/struct_ok.xml
new file mode 100644
index 000000000..5386fd58b
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/struct/struct_ok.xml
@@ -0,0 +1,20 @@
+
+
+ Top-level comment, line 1
+ Top-level comment, line 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/struct/tests.sh b/compiler/tools/fpp-from-xml/test/struct/tests.sh
new file mode 100644
index 000000000..9db0b7868
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/struct/tests.sh
@@ -0,0 +1,6 @@
+tests="
+member_array_of_enum
+struct_format
+struct_missing_member_name
+struct_ok
+"
diff --git a/compiler/tools/fpp-from-xml/test/struct/update-ref b/compiler/tools/fpp-from-xml/test/struct/update-ref
new file mode 100755
index 000000000..c905604d4
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/struct/update-ref
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/syntax/check-fpp b/compiler/tools/fpp-from-xml/test/syntax/check-fpp
new file mode 100755
index 000000000..4246bc6a9
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/syntax/check-fpp
@@ -0,0 +1,10 @@
+#!/bin/sh -e
+
+fpp_syntax=../../../../bin/fpp-syntax
+
+files=`find . -name '*.ref.txt' | egrep -v 'error|missing'`
+for file in $files
+do
+ echo "checking $file"
+ $fpp_syntax < $file
+done
diff --git a/compiler/tools/fpp-from-xml/test/syntax/clean b/compiler/tools/fpp-from-xml/test/syntax/clean
new file mode 100755
index 000000000..b042fe2f0
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/syntax/clean
@@ -0,0 +1,5 @@
+#!/bin/sh -e
+
+. ../../../../scripts/utils.sh
+
+clean
diff --git a/compiler/tools/fpp-from-xml/test/syntax/parse_error.ref.txt b/compiler/tools/fpp-from-xml/test/syntax/parse_error.ref.txt
new file mode 100644
index 000000000..0b65eb42c
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/syntax/parse_error.ref.txt
@@ -0,0 +1,3 @@
+fpp-from-xml
+file: [ local path prefix ]/tools/fpp-from-xml/test/syntax/parse_error.xml
+error: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
diff --git a/compiler/tools/fpp-from-xml/test/syntax/parse_error.xml b/compiler/tools/fpp-from-xml/test/syntax/parse_error.xml
new file mode 100644
index 000000000..e61e68ba5
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/syntax/parse_error.xml
@@ -0,0 +1 @@
+This file should not parse!
diff --git a/compiler/tools/fpp-from-xml/test/syntax/run b/compiler/tools/fpp-from-xml/test/syntax/run
new file mode 100755
index 000000000..bf6f79f51
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/syntax/run
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/syntax/tests.sh b/compiler/tools/fpp-from-xml/test/syntax/tests.sh
new file mode 100644
index 000000000..40969f15d
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/syntax/tests.sh
@@ -0,0 +1,3 @@
+tests="
+parse_error
+"
diff --git a/compiler/tools/fpp-from-xml/test/syntax/update-ref b/compiler/tools/fpp-from-xml/test/syntax/update-ref
new file mode 100755
index 000000000..c905604d4
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/syntax/update-ref
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/test b/compiler/tools/fpp-from-xml/test/test
new file mode 100755
index 000000000..6df8509b5
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/test
@@ -0,0 +1,6 @@
+#!/bin/sh -e
+
+export COMPILER_ROOT=../..
+cd ..
+$COMPILER_ROOT/scripts/test
+mv num_failed.txt test-output.txt test
diff --git a/compiler/tools/fpp-from-xml/test/top/check-fpp b/compiler/tools/fpp-from-xml/test/top/check-fpp
new file mode 100755
index 000000000..b1fe2532c
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/top/check-fpp
@@ -0,0 +1,15 @@
+#!/bin/sh -e
+
+fpp_syntax=../../../../bin/fpp-syntax
+
+files=`find . -name '*.ref.txt' | egrep -v 'error|missing'`
+for file in $files
+do
+ echo "checking $file"
+ if echo $file | grep -q "fprime_ref_packets\.ref\.txt$"
+ then
+ $fpp_syntax -i < fprime_ref_packets.fpp
+ else
+ $fpp_syntax < $file
+ fi
+done
diff --git a/compiler/tools/fpp-from-xml/test/top/clean b/compiler/tools/fpp-from-xml/test/top/clean
new file mode 100755
index 000000000..b042fe2f0
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/top/clean
@@ -0,0 +1,5 @@
+#!/bin/sh -e
+
+. ../../../../scripts/utils.sh
+
+clean
diff --git a/compiler/tools/fpp-from-xml/test/top/fprime_ref.ref.txt b/compiler/tools/fpp-from-xml/test/top/fprime_ref.ref.txt
new file mode 100644
index 000000000..03c3ea5ef
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/top/fprime_ref.ref.txt
@@ -0,0 +1,321 @@
+instance cmdDisp: Svc.CommandDispatcher base id 121
+
+instance chanTlm: Svc.TlmChan base id 61
+
+instance prmDb: Svc.PrmDb base id 141
+
+instance cmdSeq: Svc.CmdSequencer base id 541
+
+instance eventLogger: Svc.ActiveLogger base id 421
+
+instance $health: Svc.Health base id 361
+
+instance fileUplink: Svc.FileUplink base id 261
+
+instance fileUplinkBufferManager: Svc.BufferManager base id 301
+
+instance fileDownlink: Svc.FileDownlink base id 501
+
+instance fileManager: Svc.FileManager base id 601
+
+instance textLogger: Svc.PassiveTextLogger base id 521
+
+instance fatalAdapter: Svc.AssertFatalAdapter base id 341
+
+instance fatalHandler: Svc.FatalHandler base id 1
+
+instance linuxTime: Svc.Time base id 441
+
+instance staticMemory: Svc.StaticMemory base id 661
+
+instance downlink: Svc.Framer base id 681
+
+instance uplink: Svc.Deframer base id 701
+
+instance comm: Drv.ByteStreamDriverModel base id 621
+
+instance rateGroupDriverComp: Svc.RateGroupDriver base id 461
+
+instance rateGroup1Comp: Svc.ActiveRateGroup base id 21
+
+instance rateGroup2Comp: Svc.ActiveRateGroup base id 161
+
+instance rateGroup3Comp: Svc.ActiveRateGroup base id 241
+
+instance sendBuffComp: Ref.SendBuff base id 81
+
+instance recvBuffComp: Ref.RecvBuff base id 101
+
+instance pingRcvr: Ref.PingReceiver base id 41
+
+instance SG1: Ref.SignalGen base id 181
+
+instance SG3: Ref.SignalGen base id 201
+
+instance SG2: Ref.SignalGen base id 221
+
+instance SG5: Ref.SignalGen base id 281
+
+instance SG4: Ref.SignalGen base id 321
+
+instance blockDrv: Drv.BlockDriver base id 481
+
+topology Ref {
+
+ instance cmdDisp
+
+ instance chanTlm
+
+ instance prmDb
+
+ instance cmdSeq
+
+ instance eventLogger
+
+ instance $health
+
+ instance fileUplink
+
+ instance fileUplinkBufferManager
+
+ instance fileDownlink
+
+ instance fileManager
+
+ instance textLogger
+
+ instance fatalAdapter
+
+ instance fatalHandler
+
+ instance linuxTime
+
+ instance staticMemory
+
+ instance downlink
+
+ instance uplink
+
+ instance comm
+
+ instance rateGroupDriverComp
+
+ instance rateGroup1Comp
+
+ instance rateGroup2Comp
+
+ instance rateGroup3Comp
+
+ instance sendBuffComp
+
+ instance recvBuffComp
+
+ instance pingRcvr
+
+ instance SG1
+
+ instance SG3
+
+ instance SG2
+
+ instance SG5
+
+ instance SG4
+
+ instance blockDrv
+
+ connections XML {
+ comm.allocate[0] -> staticMemory.bufferAllocate[0]
+ comm.$recv[0] -> uplink.framedIn[0]
+ uplink.framedDeallocate[0] -> staticMemory.bufferDeallocate[0]
+ uplink.bufferAllocate[0] -> fileUplinkBufferManager.bufferGetCallee[0]
+ uplink.comOut[0] -> cmdDisp.seqCmdBuff[0]
+ uplink.bufferOut[0] -> fileUplink.bufferSendIn[0]
+ uplink.bufferDeallocate[0] -> fileUplinkBufferManager.bufferSendIn[0]
+ fileUplink.bufferSendOut[0] -> fileUplinkBufferManager.bufferSendIn[0]
+ downlink.framedAllocate[0] -> staticMemory.bufferAllocate[1]
+ downlink.framedOut[0] -> comm.$send[0]
+ comm.deallocate[0] -> staticMemory.bufferDeallocate[1]
+ eventLogger.PktSend[0] -> downlink.comIn[0]
+ chanTlm.PktSend[0] -> downlink.comIn[0]
+ fileDownlink.bufferSendOut[0] -> downlink.bufferIn[0]
+ downlink.bufferDeallocate[0] -> fileDownlink.bufferReturn[0]
+ eventLogger.CmdReg[0] -> cmdDisp.compCmdReg[0]
+ cmdDisp.CmdReg[0] -> cmdDisp.compCmdReg[1]
+ $health.CmdReg[0] -> cmdDisp.compCmdReg[2]
+ prmDb.CmdReg[0] -> cmdDisp.compCmdReg[3]
+ cmdSeq.cmdRegOut[0] -> cmdDisp.compCmdReg[4]
+ fileDownlink.cmdRegOut[0] -> cmdDisp.compCmdReg[5]
+ sendBuffComp.CmdReg[0] -> cmdDisp.compCmdReg[6]
+ recvBuffComp.CmdReg[0] -> cmdDisp.compCmdReg[7]
+ SG1.cmdRegOut[0] -> cmdDisp.compCmdReg[8]
+ SG2.cmdRegOut[0] -> cmdDisp.compCmdReg[9]
+ SG3.cmdRegOut[0] -> cmdDisp.compCmdReg[10]
+ SG4.cmdRegOut[0] -> cmdDisp.compCmdReg[11]
+ SG5.cmdRegOut[0] -> cmdDisp.compCmdReg[12]
+ pingRcvr.CmdReg[0] -> cmdDisp.compCmdReg[13]
+ fileManager.cmdRegOut[0] -> cmdDisp.compCmdReg[14]
+ cmdDisp.compCmdSend[0] -> eventLogger.CmdDisp[0]
+ cmdDisp.compCmdSend[1] -> cmdDisp.CmdDisp[0]
+ cmdDisp.compCmdSend[2] -> $health.CmdDisp[0]
+ cmdDisp.compCmdSend[3] -> prmDb.CmdDisp[0]
+ cmdDisp.compCmdSend[4] -> cmdSeq.cmdIn[0]
+ cmdDisp.compCmdSend[5] -> fileDownlink.cmdIn[0]
+ cmdDisp.compCmdSend[6] -> sendBuffComp.CmdDisp[0]
+ cmdDisp.compCmdSend[7] -> recvBuffComp.CmdDisp[0]
+ cmdDisp.compCmdSend[8] -> SG1.cmdIn[0]
+ cmdDisp.compCmdSend[9] -> SG2.cmdIn[0]
+ cmdDisp.compCmdSend[10] -> SG3.cmdIn[0]
+ cmdDisp.compCmdSend[11] -> SG4.cmdIn[0]
+ cmdDisp.compCmdSend[12] -> SG5.cmdIn[0]
+ cmdDisp.compCmdSend[13] -> pingRcvr.CmdDisp[0]
+ cmdDisp.compCmdSend[14] -> fileManager.cmdIn[0]
+ eventLogger.CmdStatus[0] -> cmdDisp.compCmdStat[0]
+ cmdSeq.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
+ prmDb.CmdStatus[0] -> cmdDisp.compCmdStat[0]
+ cmdDisp.CmdStatus[0] -> cmdDisp.compCmdStat[0]
+ $health.CmdStatus[0] -> cmdDisp.compCmdStat[0]
+ fileDownlink.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
+ fileManager.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
+ pingRcvr.CmdStatus[0] -> cmdDisp.compCmdStat[0]
+ recvBuffComp.CmdStatus[0] -> cmdDisp.compCmdStat[0]
+ sendBuffComp.CmdStatus[0] -> cmdDisp.compCmdStat[0]
+ SG1.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
+ SG2.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
+ SG3.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
+ SG4.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
+ SG5.cmdResponseOut[0] -> cmdDisp.compCmdStat[0]
+ cmdDisp.seqCmdStatus[1] -> cmdSeq.cmdResponseIn[0]
+ cmdSeq.comCmdOut[0] -> cmdDisp.seqCmdBuff[1]
+ prmDb.Log[0] -> eventLogger.LogRecv[0]
+ fileUplink.eventOut[0] -> eventLogger.LogRecv[0]
+ eventLogger.Log[0] -> eventLogger.LogRecv[0]
+ fileUplinkBufferManager.eventOut[0] -> eventLogger.LogRecv[0]
+ cmdDisp.Log[0] -> eventLogger.LogRecv[0]
+ cmdSeq.logOut[0] -> eventLogger.LogRecv[0]
+ fatalAdapter.Log[0] -> eventLogger.LogRecv[0]
+ $health.Log[0] -> eventLogger.LogRecv[0]
+ fileDownlink.eventOut[0] -> eventLogger.LogRecv[0]
+ fileManager.eventOut[0] -> eventLogger.LogRecv[0]
+ rateGroup1Comp.Log[0] -> eventLogger.LogRecv[0]
+ rateGroup2Comp.Log[0] -> eventLogger.LogRecv[0]
+ rateGroup3Comp.Log[0] -> eventLogger.LogRecv[0]
+ sendBuffComp.Log[0] -> eventLogger.LogRecv[0]
+ recvBuffComp.Log[0] -> eventLogger.LogRecv[0]
+ SG1.logOut[0] -> eventLogger.LogRecv[0]
+ SG2.logOut[0] -> eventLogger.LogRecv[0]
+ SG3.logOut[0] -> eventLogger.LogRecv[0]
+ SG4.logOut[0] -> eventLogger.LogRecv[0]
+ SG5.logOut[0] -> eventLogger.LogRecv[0]
+ pingRcvr.Log[0] -> eventLogger.LogRecv[0]
+ cmdSeq.LogText[0] -> textLogger.TextLogger[0]
+ eventLogger.LogText[0] -> textLogger.TextLogger[0]
+ $health.LogText[0] -> textLogger.TextLogger[0]
+ fatalAdapter.LogText[0] -> textLogger.TextLogger[0]
+ prmDb.LogText[0] -> textLogger.TextLogger[0]
+ cmdDisp.LogText[0] -> textLogger.TextLogger[0]
+ rateGroup1Comp.LogText[0] -> textLogger.TextLogger[0]
+ rateGroup2Comp.LogText[0] -> textLogger.TextLogger[0]
+ rateGroup3Comp.LogText[0] -> textLogger.TextLogger[0]
+ pingRcvr.LogText[0] -> textLogger.TextLogger[0]
+ SG1.logTextOut[0] -> textLogger.TextLogger[0]
+ SG2.logTextOut[0] -> textLogger.TextLogger[0]
+ SG3.logTextOut[0] -> textLogger.TextLogger[0]
+ SG4.logTextOut[0] -> textLogger.TextLogger[0]
+ SG5.logTextOut[0] -> textLogger.TextLogger[0]
+ sendBuffComp.LogText[0] -> textLogger.TextLogger[0]
+ recvBuffComp.LogText[0] -> textLogger.TextLogger[0]
+ fileDownlink.textEventOut[0] -> textLogger.TextLogger[0]
+ fileDownlink.tlmOut[0] -> chanTlm.TlmRecv[0]
+ fileUplinkBufferManager.tlmOut[0] -> chanTlm.TlmRecv[0]
+ fileUplink.tlmOut[0] -> chanTlm.TlmRecv[0]
+ fileManager.tlmOut[0] -> chanTlm.TlmRecv[0]
+ cmdSeq.tlmOut[0] -> chanTlm.TlmRecv[0]
+ cmdDisp.Tlm[0] -> chanTlm.TlmRecv[0]
+ rateGroup1Comp.Tlm[0] -> chanTlm.TlmRecv[0]
+ rateGroup2Comp.Tlm[0] -> chanTlm.TlmRecv[0]
+ rateGroup3Comp.Tlm[0] -> chanTlm.TlmRecv[0]
+ $health.Tlm[0] -> chanTlm.TlmRecv[0]
+ SG1.tlmOut[0] -> chanTlm.TlmRecv[0]
+ SG2.tlmOut[0] -> chanTlm.TlmRecv[0]
+ SG3.tlmOut[0] -> chanTlm.TlmRecv[0]
+ SG4.tlmOut[0] -> chanTlm.TlmRecv[0]
+ SG5.tlmOut[0] -> chanTlm.TlmRecv[0]
+ pingRcvr.Tlm[0] -> chanTlm.TlmRecv[0]
+ sendBuffComp.Tlm[0] -> chanTlm.TlmRecv[0]
+ recvBuffComp.Tlm[0] -> chanTlm.TlmRecv[0]
+ blockDrv.Tlm[0] -> chanTlm.TlmRecv[0]
+ recvBuffComp.ParamGet[0] -> prmDb.getPrm[0]
+ sendBuffComp.ParamGet[0] -> prmDb.getPrm[0]
+ recvBuffComp.ParamSet[0] -> prmDb.setPrm[0]
+ sendBuffComp.ParamSet[0] -> prmDb.setPrm[0]
+ prmDb.Time[0] -> linuxTime.timeGetPort[0]
+ eventLogger.Time[0] -> linuxTime.timeGetPort[0]
+ rateGroup1Comp.Time[0] -> linuxTime.timeGetPort[0]
+ rateGroup2Comp.Time[0] -> linuxTime.timeGetPort[0]
+ rateGroup3Comp.Time[0] -> linuxTime.timeGetPort[0]
+ cmdSeq.timeCaller[0] -> linuxTime.timeGetPort[0]
+ $health.Time[0] -> linuxTime.timeGetPort[0]
+ fileUplinkBufferManager.timeCaller[0] -> linuxTime.timeGetPort[0]
+ cmdDisp.Time[0] -> linuxTime.timeGetPort[0]
+ fileUplink.timeCaller[0] -> linuxTime.timeGetPort[0]
+ fileDownlink.timeCaller[0] -> linuxTime.timeGetPort[0]
+ fileManager.timeCaller[0] -> linuxTime.timeGetPort[0]
+ fatalAdapter.Time[0] -> linuxTime.timeGetPort[0]
+ recvBuffComp.Time[0] -> linuxTime.timeGetPort[0]
+ SG1.timeCaller[0] -> linuxTime.timeGetPort[0]
+ SG2.timeCaller[0] -> linuxTime.timeGetPort[0]
+ SG3.timeCaller[0] -> linuxTime.timeGetPort[0]
+ SG4.timeCaller[0] -> linuxTime.timeGetPort[0]
+ SG5.timeCaller[0] -> linuxTime.timeGetPort[0]
+ sendBuffComp.Time[0] -> linuxTime.timeGetPort[0]
+ pingRcvr.Time[0] -> linuxTime.timeGetPort[0]
+ blockDrv.Time[0] -> linuxTime.timeGetPort[0]
+ blockDrv.CycleOut[0] -> rateGroupDriverComp.CycleIn[0]
+ rateGroupDriverComp.CycleOut[0] -> rateGroup1Comp.CycleIn[0]
+ rateGroup1Comp.RateGroupMemberOut[0] -> SG1.schedIn[0]
+ rateGroup1Comp.RateGroupMemberOut[1] -> SG2.schedIn[0]
+ rateGroup1Comp.RateGroupMemberOut[2] -> chanTlm.Run[0]
+ rateGroup1Comp.RateGroupMemberOut[3] -> fileDownlink.Run[0]
+ rateGroupDriverComp.CycleOut[1] -> rateGroup2Comp.CycleIn[0]
+ rateGroup2Comp.RateGroupMemberOut[0] -> cmdSeq.schedIn[0]
+ rateGroup2Comp.RateGroupMemberOut[1] -> sendBuffComp.SchedIn[0]
+ rateGroup2Comp.RateGroupMemberOut[2] -> SG3.schedIn[0]
+ rateGroup2Comp.RateGroupMemberOut[3] -> SG4.schedIn[0]
+ rateGroupDriverComp.CycleOut[2] -> rateGroup3Comp.CycleIn[0]
+ rateGroup3Comp.RateGroupMemberOut[0] -> $health.Run[0]
+ rateGroup3Comp.RateGroupMemberOut[1] -> SG5.schedIn[0]
+ rateGroup3Comp.RateGroupMemberOut[2] -> blockDrv.Sched[0]
+ rateGroup3Comp.RateGroupMemberOut[3] -> fileUplinkBufferManager.schedIn[0]
+ rateGroup1Comp.PingOut[0] -> $health.PingReturn[0]
+ $health.PingSend[0] -> rateGroup1Comp.PingIn[0]
+ $health.PingSend[1] -> rateGroup2Comp.PingIn[0]
+ rateGroup2Comp.PingOut[0] -> $health.PingReturn[1]
+ $health.PingSend[2] -> rateGroup3Comp.PingIn[0]
+ rateGroup3Comp.PingOut[0] -> $health.PingReturn[2]
+ $health.PingSend[3] -> cmdDisp.pingIn[0]
+ cmdDisp.pingOut[0] -> $health.PingReturn[3]
+ $health.PingSend[4] -> eventLogger.pingIn[0]
+ eventLogger.pingOut[0] -> $health.PingReturn[4]
+ $health.PingSend[5] -> cmdSeq.pingIn[0]
+ cmdSeq.pingOut[0] -> $health.PingReturn[5]
+ $health.PingSend[6] -> chanTlm.pingIn[0]
+ chanTlm.pingOut[0] -> $health.PingReturn[6]
+ $health.PingSend[7] -> prmDb.pingIn[0]
+ prmDb.pingOut[0] -> $health.PingReturn[7]
+ $health.PingSend[8] -> fileUplink.pingIn[0]
+ fileUplink.pingOut[0] -> $health.PingReturn[8]
+ $health.PingSend[9] -> fileDownlink.pingIn[0]
+ fileDownlink.pingOut[0] -> $health.PingReturn[9]
+ $health.PingSend[10] -> pingRcvr.PingIn[0]
+ pingRcvr.PingOut[0] -> $health.PingReturn[10]
+ $health.PingSend[11] -> blockDrv.PingIn[0]
+ blockDrv.PingOut[0] -> $health.PingReturn[11]
+ $health.PingSend[12] -> fileManager.pingIn[0]
+ fileManager.pingOut[0] -> $health.PingReturn[12]
+ eventLogger.FatalAnnounce[0] -> fatalHandler.FatalReceive[0]
+ sendBuffComp.Data[0] -> blockDrv.BufferIn[0]
+ blockDrv.BufferOut[0] -> recvBuffComp.Data[0]
+ }
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/top/fprime_ref.xml b/compiler/tools/fpp-from-xml/test/top/fprime_ref.xml
new file mode 100644
index 000000000..d1cf92f2e
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/top/fprime_ref.xml
@@ -0,0 +1,927 @@
+
+
+
+
+
+
+ Svc/FatalHandler/FatalHandlerComponentAi.xml
+ Svc/ActiveRateGroup/ActiveRateGroupComponentAi.xml
+ Ref/PingReceiver/PingReceiverComponentAi.xml
+ Svc/TlmChan/TlmChanComponentAi.xml
+ Ref/SendBuffApp/SendBuffComponentAi.xml
+ Ref/RecvBuffApp/RecvBuffComponentAi.xml
+ Svc/CmdDispatcher/CommandDispatcherComponentAi.xml
+ Svc/PrmDb/PrmDbComponentAi.xml
+ Svc/ActiveRateGroup/ActiveRateGroupComponentAi.xml
+ Svc/CmdSequencer/CmdSequencerComponentAi.xml
+ Ref/SignalGen/SignalGenComponentAi.xml
+ Ref/SignalGen/SignalGenComponentAi.xml
+ Ref/SignalGen/SignalGenComponentAi.xml
+ Svc/ActiveRateGroup/ActiveRateGroupComponentAi.xml
+ Svc/FileUplink/FileUplinkComponentAi.xml
+ Ref/SignalGen/SignalGenComponentAi.xml
+ Svc/BufferManager/BufferManagerComponentAi.xml
+ Ref/SignalGen/SignalGenComponentAi.xml
+ Svc/AssertFatalAdapter/AssertFatalAdapterComponentAi.xml
+ Svc/Health/HealthComponentAi.xml
+ Svc/BufferManager/BufferManagerComponentAi.xml
+ Svc/ActiveLogger/ActiveLoggerComponentAi.xml
+ Svc/Time/TimeComponentAi.xml
+ Svc/RateGroupDriver/RateGroupDriverComponentAi.xml
+ Drv/BlockDriver/BlockDriverComponentAi.xml
+ Svc/FileDownlink/FileDownlinkComponentAi.xml
+ Svc/FileManager/FileManagerComponentAi.xml
+ Svc/PassiveConsoleTextLogger/PassiveTextLoggerComponentAi.xml
+ Svc/LinuxTimer/LinuxTimerComponentAi.xml
+ Drv/ByteStreamDriverModel/ByteStreamDriverComponentAi.xml
+ Svc/StaticMemory/StaticMemoryComponentAi.xml
+ Svc/Framer/FramerComponentAi.xml
+ Svc/Deframer/DeframerComponentAi.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.fpp b/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.fpp
new file mode 100644
index 000000000..7861d57ce
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.fpp
@@ -0,0 +1,5 @@
+topology T {
+
+ include "fprime_ref_packets.ref.txt"
+
+}
diff --git a/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.ref.txt b/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.ref.txt
new file mode 100644
index 000000000..86fa305e2
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.ref.txt
@@ -0,0 +1,265 @@
+telemetry packets RefPackets {
+
+ packet CDH id 1 group 1 {
+ Ref.cmdDisp.CommandsDispatched
+ Ref.rateGroup1Comp.RgMaxTime
+ Ref.rateGroup2Comp.RgMaxTime
+ Ref.rateGroup3Comp.RgMaxTime
+ Ref.cmdSeq.CS_LoadCommands
+ Ref.cmdSeq.CS_CancelCommands
+ Ref.cmdSeq.CS_CommandsExecuted
+ Ref.cmdSeq.CS_SequencesCompleted
+ Ref.fileUplink.FilesReceived
+ Ref.fileUplink.PacketsReceived
+ Ref.fileUplinkBufferManager.TotalBuffs
+ Ref.fileUplinkBufferManager.CurrBuffs
+ Ref.fileUplinkBufferManager.HiBuffs
+ Ref.fileDownlink.FilesSent
+ Ref.fileDownlink.PacketsSent
+ Ref.fileManager.CommandsExecuted
+ }
+
+ packet CDHErrors id 2 group 1 {
+ Ref.rateGroup1Comp.RgCycleSlips
+ Ref.rateGroup2Comp.RgCycleSlips
+ Ref.rateGroup3Comp.RgCycleSlips
+ Ref.cmdSeq.CS_Errors
+ Ref.fileUplink.Warnings
+ Ref.fileDownlink.Warnings
+ Ref.$health.PingLateWarnings
+ Ref.fileManager.Errors
+ Ref.fileUplinkBufferManager.NoBuffs
+ Ref.fileUplinkBufferManager.EmptyBuffs
+ Ref.fileManager.Errors
+ }
+
+ packet DriveTlm id 3 group 1 {
+ Ref.pingRcvr.PR_NumPings
+ Ref.sendBuffComp.PacketsSent
+ Ref.sendBuffComp.NumErrorsInjected
+ Ref.sendBuffComp.Parameter3
+ Ref.sendBuffComp.Parameter4
+ Ref.sendBuffComp.SendState
+ Ref.recvBuffComp.PktState
+ Ref.recvBuffComp.Sensor1
+ Ref.recvBuffComp.Sensor2
+ Ref.recvBuffComp.Parameter1
+ Ref.recvBuffComp.Parameter2
+ Ref.blockDrv.BD_Cycles
+ }
+
+ packet SigGenSum id 4 group 1 {
+ Ref.SG1.Output
+ Ref.SG1.Type
+ Ref.SG2.Output
+ Ref.SG2.Type
+ Ref.SG3.Output
+ Ref.SG3.Type
+ Ref.SG4.Output
+ Ref.SG4.Type
+ Ref.SG5.Output
+ Ref.SG5.Type
+ }
+
+ packet SystemRes1 id 5 group 2 {
+ Ref.systemResources.MEMORY_TOTAL
+ Ref.systemResources.MEMORY_USED
+ Ref.systemResources.NON_VOLATILE_TOTAL
+ Ref.systemResources.NON_VOLATILE_FREE
+ }
+
+ packet SystemRes3 id 6 group 2 {
+ Ref.systemResources.CPU
+ Ref.systemResources.CPU_00
+ Ref.systemResources.CPU_01
+ Ref.systemResources.CPU_02
+ Ref.systemResources.CPU_03
+ Ref.systemResources.CPU_04
+ Ref.systemResources.CPU_05
+ Ref.systemResources.CPU_06
+ Ref.systemResources.CPU_07
+ Ref.systemResources.CPU_08
+ Ref.systemResources.CPU_09
+ Ref.systemResources.CPU_10
+ Ref.systemResources.CPU_11
+ Ref.systemResources.CPU_12
+ Ref.systemResources.CPU_13
+ Ref.systemResources.CPU_14
+ Ref.systemResources.CPU_15
+ }
+
+ packet SigGen1Info id 10 group 2 {
+ Ref.SG1.Info
+ }
+
+ packet SigGen2Info id 11 group 2 {
+ Ref.SG2.Info
+ }
+
+ packet SigGen3Info id 12 group 2 {
+ Ref.SG3.Info
+ }
+
+ packet SigGen4Info id 13 group 2 {
+ Ref.SG4.Info
+ }
+
+ packet SigGen5Info id 14 group 2 {
+ Ref.SG5.Info
+ }
+
+ packet SigGen1 id 15 group 3 {
+ Ref.SG1.PairOutput
+ Ref.SG1.History
+ Ref.SG1.PairHistory
+ Ref.SG1.DpBytes
+ Ref.SG1.DpRecords
+ }
+
+ packet SigGen2 id 16 group 3 {
+ Ref.SG2.PairOutput
+ Ref.SG2.History
+ Ref.SG2.PairHistory
+ Ref.SG2.DpBytes
+ Ref.SG2.DpRecords
+ }
+
+ packet SigGen3 id 17 group 3 {
+ Ref.SG3.PairOutput
+ Ref.SG3.History
+ Ref.SG3.PairHistory
+ Ref.SG3.DpBytes
+ Ref.SG3.DpRecords
+ }
+
+ packet SigGen4 id 18 group 3 {
+ Ref.SG4.PairOutput
+ Ref.SG4.History
+ Ref.SG4.PairHistory
+ Ref.SG4.DpBytes
+ Ref.SG4.DpRecords
+ }
+
+ packet SigGen5 id 19 group 3 {
+ Ref.SG5.PairOutput
+ Ref.SG5.History
+ Ref.SG5.PairHistory
+ Ref.SG5.DpBytes
+ Ref.SG5.DpRecords
+ }
+
+ packet TypeDemo id 20 group 3 {
+ Ref.typeDemo.ChoiceCh
+ Ref.typeDemo.ChoicesCh
+ Ref.typeDemo.ExtraChoicesCh
+ Ref.typeDemo.ChoicePairCh
+ Ref.typeDemo.ChoiceSlurryCh
+ Ref.typeDemo.Float1Ch
+ Ref.typeDemo.Float2Ch
+ Ref.typeDemo.Float3Ch
+ Ref.typeDemo.FloatSet
+ Ref.typeDemo.ScalarStructCh
+ Ref.typeDemo.ScalarU8Ch
+ Ref.typeDemo.ScalarU16Ch
+ Ref.typeDemo.ScalarU32Ch
+ Ref.typeDemo.ScalarU64Ch
+ Ref.typeDemo.ScalarI8Ch
+ Ref.typeDemo.ScalarI16Ch
+ Ref.typeDemo.ScalarI32Ch
+ Ref.typeDemo.ScalarI64Ch
+ Ref.typeDemo.ScalarF32Ch
+ Ref.typeDemo.ScalarF64Ch
+ }
+
+ packet DataProducts id 21 group 3 {
+ Ref.dpCat.CatalogDps
+ Ref.dpCat.DpsSent
+ Ref.dpMgr.NumSuccessfulAllocations
+ Ref.dpMgr.NumFailedAllocations
+ Ref.dpMgr.NumDataProducts
+ Ref.dpMgr.NumBytes
+ Ref.dpWriter.NumBuffersReceived
+ Ref.dpWriter.NumBytesWritten
+ Ref.dpWriter.NumSuccessfulWrites
+ Ref.dpWriter.NumFailedWrites
+ Ref.dpWriter.NumErrors
+ Ref.dpBufferManager.TotalBuffs
+ Ref.dpBufferManager.CurrBuffs
+ Ref.dpBufferManager.HiBuffs
+ Ref.dpBufferManager.NoBuffs
+ Ref.dpBufferManager.EmptyBuffs
+ }
+
+ packet Version1 id 22 group 2 {
+ Ref.version.FrameworkVersion
+ Ref.version.ProjectVersion
+ }
+
+ packet Version_Library1 id 23 group 2 {
+ Ref.version.LibraryVersion01
+ Ref.version.LibraryVersion02
+ }
+
+ packet Version_Library2 id 24 group 2 {
+ Ref.version.LibraryVersion03
+ Ref.version.LibraryVersion04
+ }
+
+ packet Version_Library3 id 25 group 2 {
+ Ref.version.LibraryVersion05
+ Ref.version.LibraryVersion06
+ }
+
+ packet Version_Library4 id 26 group 2 {
+ Ref.version.LibraryVersion07
+ Ref.version.LibraryVersion08
+ }
+
+ packet Version_Library5 id 27 group 2 {
+ Ref.version.LibraryVersion09
+ Ref.version.LibraryVersion10
+ }
+
+ packet Version_Custom1 id 28 group 2 {
+ Ref.version.CustomVersion01
+ }
+
+ packet Version_Custom2 id 29 group 2 {
+ Ref.version.CustomVersion02
+ }
+
+ packet Version_Custom3 id 30 group 2 {
+ Ref.version.CustomVersion03
+ }
+
+ packet Version_Custom4 id 31 group 2 {
+ Ref.version.CustomVersion04
+ }
+
+ packet Version_Custom5 id 32 group 2 {
+ Ref.version.CustomVersion05
+ }
+
+ packet Version_Custom6 id 33 group 2 {
+ Ref.version.CustomVersion06
+ }
+
+ packet Version_Custom7 id 34 group 2 {
+ Ref.version.CustomVersion07
+ }
+
+ packet Version_Custom8 id 35 group 2 {
+ Ref.version.CustomVersion08
+ }
+
+ packet Version_Custom9 id 36 group 2 {
+ Ref.version.CustomVersion09
+ }
+
+ packet Version_Custom10 id 37 group 2 {
+ Ref.version.CustomVersion10
+ }
+
+} omit {
+ Ref.cmdDisp.CommandErrors
+}
diff --git a/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.xml b/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.xml
new file mode 100644
index 000000000..e52579424
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/top/fprime_ref_packets.xml
@@ -0,0 +1,261 @@
+
+
+ Ref/Top/RefTopologyAppAi.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/compiler/tools/fpp-from-xml/test/top/run b/compiler/tools/fpp-from-xml/test/top/run
new file mode 100755
index 000000000..bf6f79f51
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/top/run
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/run.sh
diff --git a/compiler/tools/fpp-from-xml/test/top/tests.sh b/compiler/tools/fpp-from-xml/test/top/tests.sh
new file mode 100644
index 000000000..868139043
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/top/tests.sh
@@ -0,0 +1,4 @@
+tests="
+fprime_ref
+fprime_ref_packets
+"
diff --git a/compiler/tools/fpp-from-xml/test/top/update-ref b/compiler/tools/fpp-from-xml/test/top/update-ref
new file mode 100755
index 000000000..c905604d4
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/top/update-ref
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+export COMPILER_ROOT=../../../..
+
+sh ../scripts/update-ref.sh
From 5a1dec5524ee72426ad0a0d4e454f504ef815eb9 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 13:22:58 -0700
Subject: [PATCH 007/110] Add back in gitignores
---
.gitignore | 1 +
compiler/tools/fpp-from-xml/test/.gitignore | 4 ++++
compiler/tools/fpp-from-xml/test/enum/.gitignore | 4 ++++
3 files changed, 9 insertions(+)
create mode 100644 compiler/tools/fpp-from-xml/test/.gitignore
create mode 100644 compiler/tools/fpp-from-xml/test/enum/.gitignore
diff --git a/.gitignore b/.gitignore
index e9f182663..436b5be07 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@
*.tasty
*~
.*
+!.gitignore
!.gitattributes
__SHADOW__
__pycache__
diff --git a/compiler/tools/fpp-from-xml/test/.gitignore b/compiler/tools/fpp-from-xml/test/.gitignore
new file mode 100644
index 000000000..62a514fc5
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/.gitignore
@@ -0,0 +1,4 @@
+*.out.txt
+*.diff.txt
+default-tests.sh
+default-update-ref.sh
diff --git a/compiler/tools/fpp-from-xml/test/enum/.gitignore b/compiler/tools/fpp-from-xml/test/enum/.gitignore
new file mode 100644
index 000000000..eecee3c17
--- /dev/null
+++ b/compiler/tools/fpp-from-xml/test/enum/.gitignore
@@ -0,0 +1,4 @@
+*Ai.xml
+*Ac.hpp
+*Ac.cpp
+
From b85f2ac1e757a2e8af7cf96f3c93b69784b5052d Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 13:23:28 -0700
Subject: [PATCH 008/110] revert change
---
compiler/tools/fpp-from-xml/test/enum/.gitignore | 1 -
1 file changed, 1 deletion(-)
diff --git a/compiler/tools/fpp-from-xml/test/enum/.gitignore b/compiler/tools/fpp-from-xml/test/enum/.gitignore
index eecee3c17..68e20f132 100644
--- a/compiler/tools/fpp-from-xml/test/enum/.gitignore
+++ b/compiler/tools/fpp-from-xml/test/enum/.gitignore
@@ -1,4 +1,3 @@
*Ai.xml
*Ac.hpp
*Ac.cpp
-
From 90945539becca6c5908dcbaf66dc4929cca5c106 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 14:09:15 -0700
Subject: [PATCH 009/110] Generate wrappers for native build
---
.github/workflows/native-build.yml | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml
index e68f23818..2eec7635e 100644
--- a/.github/workflows/native-build.yml
+++ b/.github/workflows/native-build.yml
@@ -150,9 +150,28 @@ jobs:
path: ${{ inputs.trace-directory }}
- name: "Build Native Images"
run: |
+ get_tool_names()
+ {
+ prefix="fpp-"
+ dir=$1
+ for file in $dir/$prefix*
+ do
+ base=`basename $file`
+ result="${base#$prefix}"
+ echo $result
+ done
+ }
+
export CLASSPATH="`cd ${{ inputs.trace-directory }}/../..; pwd`:${CLASSPATH}"
cd ${{ inputs.working-directory }}
- $NATIVE_IMAGE_TOOLS_PATH/native-images ${{ inputs.output-directory }} ${{ inputs.tools }}
+ $NATIVE_IMAGE_TOOLS_PATH/native-images ${{ inputs.output-directory }}
+ tool_names=`get_tool_names bin`
+ for tool in $tool_names
+ do
+ echo '#!/bin/sh
+ "`dirname $0`/fpp" '$tool' "$@"' > ${{ inputs.output-directory }}/fpp-$tool
+ chmod +x ${{ inputs.output-directory }}/fpp-$tool
+ done
shell: bash
- name: "Archive Native Images"
uses: actions/upload-artifact@v4
From 2a8e61f9106af8af54e29047e74b2dffaba7f575 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 14:21:57 -0700
Subject: [PATCH 010/110] update actions
---
.github/workflows/native-build.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml
index 2eec7635e..9e3179601 100644
--- a/.github/workflows/native-build.yml
+++ b/.github/workflows/native-build.yml
@@ -165,7 +165,7 @@ jobs:
export CLASSPATH="`cd ${{ inputs.trace-directory }}/../..; pwd`:${CLASSPATH}"
cd ${{ inputs.working-directory }}
$NATIVE_IMAGE_TOOLS_PATH/native-images ${{ inputs.output-directory }}
- tool_names=`get_tool_names bin`
+ tool_names=`get_tool_names ${{ inputs.output-directory }}`
for tool in $tool_names
do
echo '#!/bin/sh
From b7f3eece9d5fd244d6120fcf327df2cd551f29eb Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 14:46:18 -0700
Subject: [PATCH 011/110] Add diagnostics to actions
---
.github/workflows/native-build.yml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml
index 9e3179601..f161925b9 100644
--- a/.github/workflows/native-build.yml
+++ b/.github/workflows/native-build.yml
@@ -166,6 +166,9 @@ jobs:
cd ${{ inputs.working-directory }}
$NATIVE_IMAGE_TOOLS_PATH/native-images ${{ inputs.output-directory }}
tool_names=`get_tool_names ${{ inputs.output-directory }}`
+ echo "$tool_names"
+ ls ${{ inputs.output-directory }}
+ ls ${{ inputs.working-directory }}
for tool in $tool_names
do
echo '#!/bin/sh
From 3138ee6c7eced3f6aaab80f59e97a417c6a18685 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 14:55:49 -0700
Subject: [PATCH 012/110] fix tool
---
.github/workflows/native-build.yml | 35 +++++++++++++++---------------
1 file changed, 18 insertions(+), 17 deletions(-)
diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml
index f161925b9..857302ba1 100644
--- a/.github/workflows/native-build.yml
+++ b/.github/workflows/native-build.yml
@@ -150,27 +150,28 @@ jobs:
path: ${{ inputs.trace-directory }}
- name: "Build Native Images"
run: |
- get_tool_names()
- {
- prefix="fpp-"
- dir=$1
- for file in $dir/$prefix*
- do
- base=`basename $file`
- result="${base#$prefix}"
- echo $result
- done
- }
-
export CLASSPATH="`cd ${{ inputs.trace-directory }}/../..; pwd`:${CLASSPATH}"
cd ${{ inputs.working-directory }}
- $NATIVE_IMAGE_TOOLS_PATH/native-images ${{ inputs.output-directory }}
- tool_names=`get_tool_names ${{ inputs.output-directory }}`
- echo "$tool_names"
+ $NATIVE_IMAGE_TOOLSPATH/native-images ${{ inputs.output-directory }}
+ tool_names="
+ check
+ depend
+ filenames
+ format
+ from-xml
+ locate-defs
+ locate-uses
+ syntax
+ to-cpp
+ to-json
+ to-xml
+ to-dict
+ to-layout
+ "
ls ${{ inputs.output-directory }}
- ls ${{ inputs.working-directory }}
- for tool in $tool_names
+ for tool in $tool_name
do
+ echo "Generating wrapper for fpp-$tool in ${{ inputs.output-directory }}/fpp-$tool"
echo '#!/bin/sh
"`dirname $0`/fpp" '$tool' "$@"' > ${{ inputs.output-directory }}/fpp-$tool
chmod +x ${{ inputs.output-directory }}/fpp-$tool
From 5042d7d479df72dde34add4c0ebe6cb0de0801af Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 15:01:27 -0700
Subject: [PATCH 013/110] generate wrappers before compiling the native image
---
.github/workflows/native-build.yml | 21 ++++-----------------
1 file changed, 4 insertions(+), 17 deletions(-)
diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml
index 857302ba1..312e4d4b2 100644
--- a/.github/workflows/native-build.yml
+++ b/.github/workflows/native-build.yml
@@ -152,30 +152,17 @@ jobs:
run: |
export CLASSPATH="`cd ${{ inputs.trace-directory }}/../..; pwd`:${CLASSPATH}"
cd ${{ inputs.working-directory }}
- $NATIVE_IMAGE_TOOLSPATH/native-images ${{ inputs.output-directory }}
- tool_names="
- check
- depend
- filenames
- format
- from-xml
- locate-defs
- locate-uses
- syntax
- to-cpp
- to-json
- to-xml
- to-dict
- to-layout
- "
+ TOOL_NAMES="check depend filenames format from-xml locate-defs locate-uses syntax to-cpp to-json to-xml to-dict to-layout"
ls ${{ inputs.output-directory }}
- for tool in $tool_name
+ for tool in $TOOL_NAMES
do
echo "Generating wrapper for fpp-$tool in ${{ inputs.output-directory }}/fpp-$tool"
echo '#!/bin/sh
"`dirname $0`/fpp" '$tool' "$@"' > ${{ inputs.output-directory }}/fpp-$tool
chmod +x ${{ inputs.output-directory }}/fpp-$tool
done
+
+ $NATIVE_IMAGE_TOOLSPATH/native-images ${{ inputs.output-directory }}
shell: bash
- name: "Archive Native Images"
uses: actions/upload-artifact@v4
From e340e56a6a7682f1e3c47a9bb7356b4d240feb5a Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 15:03:21 -0700
Subject: [PATCH 014/110] Remove XML files from fpp-filenames output
---
compiler/tools/fpp-filenames/test/include.ref.txt | 9 ---------
compiler/tools/fpp-filenames/test/ok.ref.txt | 9 ---------
2 files changed, 18 deletions(-)
diff --git a/compiler/tools/fpp-filenames/test/include.ref.txt b/compiler/tools/fpp-filenames/test/include.ref.txt
index bdabcd91d..8f467ce80 100644
--- a/compiler/tools/fpp-filenames/test/include.ref.txt
+++ b/compiler/tools/fpp-filenames/test/include.ref.txt
@@ -1,35 +1,26 @@
AArrayAc.cpp
AArrayAc.hpp
-AArrayAi.xml
CComponentAc.cpp
CComponentAc.hpp
-CComponentAi.xml
C_AArrayAc.cpp
C_AArrayAc.hpp
-C_AArrayAi.xml
C_EEnumAc.cpp
C_EEnumAc.hpp
-C_EEnumAi.xml
C_SSerializableAc.cpp
C_SSerializableAc.hpp
-C_SSerializableAi.xml
EEnumAc.cpp
EEnumAc.hpp
-EEnumAi.xml
FppConstantsAc.cpp
FppConstantsAc.hpp
FwOpcodeTypeAliasAc.hpp
PPortAc.cpp
PPortAc.hpp
-PPortAi.xml
SM2StateMachineAc.cpp
SM2StateMachineAc.hpp
SSerializableAc.cpp
SSerializableAc.hpp
-SSerializableAi.xml
TTopologyAc.cpp
TTopologyAc.hpp
-TTopologyAppAi.xml
TTopologyDictionary.json
T_PTlmPacketsAc.cpp
T_PTlmPacketsAc.hpp
diff --git a/compiler/tools/fpp-filenames/test/ok.ref.txt b/compiler/tools/fpp-filenames/test/ok.ref.txt
index bdabcd91d..8f467ce80 100644
--- a/compiler/tools/fpp-filenames/test/ok.ref.txt
+++ b/compiler/tools/fpp-filenames/test/ok.ref.txt
@@ -1,35 +1,26 @@
AArrayAc.cpp
AArrayAc.hpp
-AArrayAi.xml
CComponentAc.cpp
CComponentAc.hpp
-CComponentAi.xml
C_AArrayAc.cpp
C_AArrayAc.hpp
-C_AArrayAi.xml
C_EEnumAc.cpp
C_EEnumAc.hpp
-C_EEnumAi.xml
C_SSerializableAc.cpp
C_SSerializableAc.hpp
-C_SSerializableAi.xml
EEnumAc.cpp
EEnumAc.hpp
-EEnumAi.xml
FppConstantsAc.cpp
FppConstantsAc.hpp
FwOpcodeTypeAliasAc.hpp
PPortAc.cpp
PPortAc.hpp
-PPortAi.xml
SM2StateMachineAc.cpp
SM2StateMachineAc.hpp
SSerializableAc.cpp
SSerializableAc.hpp
-SSerializableAi.xml
TTopologyAc.cpp
TTopologyAc.hpp
-TTopologyAppAi.xml
TTopologyDictionary.json
T_PTlmPacketsAc.cpp
T_PTlmPacketsAc.hpp
From dfbe43bed501e29e473e097eaa035682bbc446ee Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 15:23:54 -0700
Subject: [PATCH 015/110] Update ref for fpp-depend
---
.../test/filenames_auto_generated_output.ref.txt | 9 ---------
.../fpp-depend/test/filenames_generated_output.ref.txt | 9 ---------
.../test/filenames_include_auto_generated_output.ref.txt | 9 ---------
.../test/filenames_include_generated_output.ref.txt | 9 ---------
4 files changed, 36 deletions(-)
diff --git a/compiler/tools/fpp-depend/test/filenames_auto_generated_output.ref.txt b/compiler/tools/fpp-depend/test/filenames_auto_generated_output.ref.txt
index bdabcd91d..8f467ce80 100644
--- a/compiler/tools/fpp-depend/test/filenames_auto_generated_output.ref.txt
+++ b/compiler/tools/fpp-depend/test/filenames_auto_generated_output.ref.txt
@@ -1,35 +1,26 @@
AArrayAc.cpp
AArrayAc.hpp
-AArrayAi.xml
CComponentAc.cpp
CComponentAc.hpp
-CComponentAi.xml
C_AArrayAc.cpp
C_AArrayAc.hpp
-C_AArrayAi.xml
C_EEnumAc.cpp
C_EEnumAc.hpp
-C_EEnumAi.xml
C_SSerializableAc.cpp
C_SSerializableAc.hpp
-C_SSerializableAi.xml
EEnumAc.cpp
EEnumAc.hpp
-EEnumAi.xml
FppConstantsAc.cpp
FppConstantsAc.hpp
FwOpcodeTypeAliasAc.hpp
PPortAc.cpp
PPortAc.hpp
-PPortAi.xml
SM2StateMachineAc.cpp
SM2StateMachineAc.hpp
SSerializableAc.cpp
SSerializableAc.hpp
-SSerializableAi.xml
TTopologyAc.cpp
TTopologyAc.hpp
-TTopologyAppAi.xml
TTopologyDictionary.json
T_PTlmPacketsAc.cpp
T_PTlmPacketsAc.hpp
diff --git a/compiler/tools/fpp-depend/test/filenames_generated_output.ref.txt b/compiler/tools/fpp-depend/test/filenames_generated_output.ref.txt
index bdabcd91d..8f467ce80 100644
--- a/compiler/tools/fpp-depend/test/filenames_generated_output.ref.txt
+++ b/compiler/tools/fpp-depend/test/filenames_generated_output.ref.txt
@@ -1,35 +1,26 @@
AArrayAc.cpp
AArrayAc.hpp
-AArrayAi.xml
CComponentAc.cpp
CComponentAc.hpp
-CComponentAi.xml
C_AArrayAc.cpp
C_AArrayAc.hpp
-C_AArrayAi.xml
C_EEnumAc.cpp
C_EEnumAc.hpp
-C_EEnumAi.xml
C_SSerializableAc.cpp
C_SSerializableAc.hpp
-C_SSerializableAi.xml
EEnumAc.cpp
EEnumAc.hpp
-EEnumAi.xml
FppConstantsAc.cpp
FppConstantsAc.hpp
FwOpcodeTypeAliasAc.hpp
PPortAc.cpp
PPortAc.hpp
-PPortAi.xml
SM2StateMachineAc.cpp
SM2StateMachineAc.hpp
SSerializableAc.cpp
SSerializableAc.hpp
-SSerializableAi.xml
TTopologyAc.cpp
TTopologyAc.hpp
-TTopologyAppAi.xml
TTopologyDictionary.json
T_PTlmPacketsAc.cpp
T_PTlmPacketsAc.hpp
diff --git a/compiler/tools/fpp-depend/test/filenames_include_auto_generated_output.ref.txt b/compiler/tools/fpp-depend/test/filenames_include_auto_generated_output.ref.txt
index bdabcd91d..8f467ce80 100644
--- a/compiler/tools/fpp-depend/test/filenames_include_auto_generated_output.ref.txt
+++ b/compiler/tools/fpp-depend/test/filenames_include_auto_generated_output.ref.txt
@@ -1,35 +1,26 @@
AArrayAc.cpp
AArrayAc.hpp
-AArrayAi.xml
CComponentAc.cpp
CComponentAc.hpp
-CComponentAi.xml
C_AArrayAc.cpp
C_AArrayAc.hpp
-C_AArrayAi.xml
C_EEnumAc.cpp
C_EEnumAc.hpp
-C_EEnumAi.xml
C_SSerializableAc.cpp
C_SSerializableAc.hpp
-C_SSerializableAi.xml
EEnumAc.cpp
EEnumAc.hpp
-EEnumAi.xml
FppConstantsAc.cpp
FppConstantsAc.hpp
FwOpcodeTypeAliasAc.hpp
PPortAc.cpp
PPortAc.hpp
-PPortAi.xml
SM2StateMachineAc.cpp
SM2StateMachineAc.hpp
SSerializableAc.cpp
SSerializableAc.hpp
-SSerializableAi.xml
TTopologyAc.cpp
TTopologyAc.hpp
-TTopologyAppAi.xml
TTopologyDictionary.json
T_PTlmPacketsAc.cpp
T_PTlmPacketsAc.hpp
diff --git a/compiler/tools/fpp-depend/test/filenames_include_generated_output.ref.txt b/compiler/tools/fpp-depend/test/filenames_include_generated_output.ref.txt
index bdabcd91d..8f467ce80 100644
--- a/compiler/tools/fpp-depend/test/filenames_include_generated_output.ref.txt
+++ b/compiler/tools/fpp-depend/test/filenames_include_generated_output.ref.txt
@@ -1,35 +1,26 @@
AArrayAc.cpp
AArrayAc.hpp
-AArrayAi.xml
CComponentAc.cpp
CComponentAc.hpp
-CComponentAi.xml
C_AArrayAc.cpp
C_AArrayAc.hpp
-C_AArrayAi.xml
C_EEnumAc.cpp
C_EEnumAc.hpp
-C_EEnumAi.xml
C_SSerializableAc.cpp
C_SSerializableAc.hpp
-C_SSerializableAi.xml
EEnumAc.cpp
EEnumAc.hpp
-EEnumAi.xml
FppConstantsAc.cpp
FppConstantsAc.hpp
FwOpcodeTypeAliasAc.hpp
PPortAc.cpp
PPortAc.hpp
-PPortAi.xml
SM2StateMachineAc.cpp
SM2StateMachineAc.hpp
SSerializableAc.cpp
SSerializableAc.hpp
-SSerializableAi.xml
TTopologyAc.cpp
TTopologyAc.hpp
-TTopologyAppAi.xml
TTopologyDictionary.json
T_PTlmPacketsAc.cpp
T_PTlmPacketsAc.hpp
From 8bc272ff824271491535090307848830ffcf5ea6 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Thu, 4 Sep 2025 15:28:11 -0700
Subject: [PATCH 016/110] Fix env typo
---
.github/workflows/native-build.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml
index 312e4d4b2..9752d0ebf 100644
--- a/.github/workflows/native-build.yml
+++ b/.github/workflows/native-build.yml
@@ -162,7 +162,7 @@ jobs:
chmod +x ${{ inputs.output-directory }}/fpp-$tool
done
- $NATIVE_IMAGE_TOOLSPATH/native-images ${{ inputs.output-directory }}
+ $NATIVE_IMAGE_TOOLS_PATH/native-images ${{ inputs.output-directory }}
shell: bash
- name: "Archive Native Images"
uses: actions/upload-artifact@v4
From 0e7c2d53ac974f0583bab0983030398aa5c90fdf Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Fri, 5 Sep 2025 08:24:43 -0700
Subject: [PATCH 017/110] echo some inputs
---
.github/workflows/native-build.yml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml
index 9752d0ebf..34378539c 100644
--- a/.github/workflows/native-build.yml
+++ b/.github/workflows/native-build.yml
@@ -152,8 +152,10 @@ jobs:
run: |
export CLASSPATH="`cd ${{ inputs.trace-directory }}/../..; pwd`:${CLASSPATH}"
cd ${{ inputs.working-directory }}
- TOOL_NAMES="check depend filenames format from-xml locate-defs locate-uses syntax to-cpp to-json to-xml to-dict to-layout"
- ls ${{ inputs.output-directory }}
+ echo "WD ${{ inputs.working-directory }}"
+ echo "OD ${{ inputs.output-directory }}"
+ echo "II ${{ inputs }}"
+ TOOL_NAMES="check depend filenames format from-xml locate-defs locate-uses syntax to-cpp to-json to-dict to-layout"
for tool in $TOOL_NAMES
do
echo "Generating wrapper for fpp-$tool in ${{ inputs.output-directory }}/fpp-$tool"
From ac3f02e969c562e81b170d225251ba4c3923b9b4 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Fri, 5 Sep 2025 09:45:22 -0700
Subject: [PATCH 018/110] Build tool wrappers into native output
---
.github/workflows/native-build.yml | 49 ++++++++++++++++++++++++------
compiler/install | 15 +--------
compiler/tools.txt | 12 ++++++++
3 files changed, 53 insertions(+), 23 deletions(-)
create mode 100644 compiler/tools.txt
diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml
index 34378539c..02990164b 100644
--- a/.github/workflows/native-build.yml
+++ b/.github/workflows/native-build.yml
@@ -150,21 +150,52 @@ jobs:
path: ${{ inputs.trace-directory }}
- name: "Build Native Images"
run: |
+ # Print and evaluate
+ evalp()
+ {
+ echo "$@"
+ "$@"
+ }
+
export CLASSPATH="`cd ${{ inputs.trace-directory }}/../..; pwd`:${CLASSPATH}"
cd ${{ inputs.working-directory }}
- echo "WD ${{ inputs.working-directory }}"
- echo "OD ${{ inputs.output-directory }}"
- echo "II ${{ inputs }}"
- TOOL_NAMES="check depend filenames format from-xml locate-defs locate-uses syntax to-cpp to-json to-dict to-layout"
+
+ tool_dir="${{ inputs.output-directory }}"
+ native_dir="${tool_dir}-native"
+ native_final="${tool_dir}-final"
+ mkdir -p "${native_dir}"
+ mkdir -p "${native_final}"
+ # Remove $1
+ shift;
+ tool_names="$@"
+ if [[ "${tool_names}" == "" ]]
+ then
+ tool_names="$(get_tool_names ${tool_dir})"
+ fi
+
+ jar_file="$tool_dir/fpp.jar"
+ out_file="$native_dir/fpp"
+ echo "Building $out_file"
+ class_path="${CLASSPATH}"
+ evalp "$GRAALVM_JAVA_HOME/bin/native-image" -H:PageSize=65536 -cp "${class_path}" $FPP_NATIVE_IMAGE_FLAGS \
+ --no-fallback --install-exit-handlers \
+ -jar "$jar_file" "$out_file"
+ if [ $? -ne 0 ]
+ then
+ echo "[ERROR] Failed to build $out_file"
+ exit 1
+ fi
+ sync; sync; sync; # Magic to fix filesystem woes
+ cp "${out_file}" "${native_final}"
+
+ TOOL_NAMES=`cat ${{ inputs.working-directory }}/compiler/tools.txt`
for tool in $TOOL_NAMES
do
- echo "Generating wrapper for fpp-$tool in ${{ inputs.output-directory }}/fpp-$tool"
+ echo "Generating wrapper for fpp-$tool in ${native_final}/fpp-$tool"
echo '#!/bin/sh
- "`dirname $0`/fpp" '$tool' "$@"' > ${{ inputs.output-directory }}/fpp-$tool
- chmod +x ${{ inputs.output-directory }}/fpp-$tool
+ "`dirname $0`/fpp" '$tool' "$@"' > ${native_final}/fpp-$tool
+ chmod +x ${native_final}/fpp-$tool
done
-
- $NATIVE_IMAGE_TOOLS_PATH/native-images ${{ inputs.output-directory }}
shell: bash
- name: "Archive Native Images"
uses: actions/upload-artifact@v4
diff --git a/compiler/install b/compiler/install
index 30b9937e0..1de5b22ec 100755
--- a/compiler/install
+++ b/compiler/install
@@ -51,20 +51,7 @@ dir=`cd $dir; pwd`
base=`basename $dest`
dest=$dir/$base
-tools="
-check
-depend
-filenames
-format
-from-xml
-locate-defs
-locate-uses
-syntax
-to-cpp
-to-json
-to-dict
-to-layout
-"
+tools=`cat ./tools.txt`
if git describe --tags --always > /dev/null 2>&1
then
diff --git a/compiler/tools.txt b/compiler/tools.txt
new file mode 100644
index 000000000..4c23864e4
--- /dev/null
+++ b/compiler/tools.txt
@@ -0,0 +1,12 @@
+check
+depend
+filenames
+format
+from-xml
+locate-defs
+locate-uses
+syntax
+to-cpp
+to-json
+to-dict
+to-layout
From 7b19236546eccd40805a59f456af89adf77d9869 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Fri, 5 Sep 2025 09:50:56 -0700
Subject: [PATCH 019/110] Remove old get_tool_names
---
.github/workflows/native-build.yml | 7 -------
1 file changed, 7 deletions(-)
diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml
index 02990164b..b33de7c52 100644
--- a/.github/workflows/native-build.yml
+++ b/.github/workflows/native-build.yml
@@ -165,13 +165,6 @@ jobs:
native_final="${tool_dir}-final"
mkdir -p "${native_dir}"
mkdir -p "${native_final}"
- # Remove $1
- shift;
- tool_names="$@"
- if [[ "${tool_names}" == "" ]]
- then
- tool_names="$(get_tool_names ${tool_dir})"
- fi
jar_file="$tool_dir/fpp.jar"
out_file="$native_dir/fpp"
From cbce45d18d54af23b44594cb8e1897761a7fb9f5 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Fri, 5 Sep 2025 10:07:28 -0700
Subject: [PATCH 020/110] actions changes
---
.github/workflows/native-build.yml | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml
index b33de7c52..65e3d3413 100644
--- a/.github/workflows/native-build.yml
+++ b/.github/workflows/native-build.yml
@@ -184,10 +184,11 @@ jobs:
TOOL_NAMES=`cat ${{ inputs.working-directory }}/compiler/tools.txt`
for tool in $TOOL_NAMES
do
- echo "Generating wrapper for fpp-$tool in ${native_final}/fpp-$tool"
+ echo "Generating wrapper for fpp-$tool in ${native_dir}/fpp-$tool"
echo '#!/bin/sh
- "`dirname $0`/fpp" '$tool' "$@"' > ${native_final}/fpp-$tool
- chmod +x ${native_final}/fpp-$tool
+ "`dirname $0`/fpp" '$tool' "$@"' > ${native_dir}/fpp-$tool
+ chmod +x ${native_dir}/fpp-$tool
+ cp "${native_dir}/fpp-$tool" "${native_final}"
done
shell: bash
- name: "Archive Native Images"
From 68664e67f26ffbc482458e1f39d1105a4eb054d6 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Fri, 5 Sep 2025 10:26:01 -0700
Subject: [PATCH 021/110] Finish up build
---
.github/workflows/native-build.yml | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml
index 65e3d3413..984adfe1b 100644
--- a/.github/workflows/native-build.yml
+++ b/.github/workflows/native-build.yml
@@ -184,12 +184,14 @@ jobs:
TOOL_NAMES=`cat ${{ inputs.working-directory }}/compiler/tools.txt`
for tool in $TOOL_NAMES
do
- echo "Generating wrapper for fpp-$tool in ${native_dir}/fpp-$tool"
+ echo "Generating wrapper for fpp-$tool in ${native_final}/fpp-$tool"
echo '#!/bin/sh
- "`dirname $0`/fpp" '$tool' "$@"' > ${native_dir}/fpp-$tool
- chmod +x ${native_dir}/fpp-$tool
- cp "${native_dir}/fpp-$tool" "${native_final}"
+ "`dirname $0`/fpp" '$tool' "$@"' > ${native_final}/fpp-$tool
+ chmod +x ${native_final}/fpp-$tool
done
+
+ mv "$tool_dir" "$tool_dir.old"
+ mv "$native_final" "$tool_dir"
shell: bash
- name: "Archive Native Images"
uses: actions/upload-artifact@v4
From cf4636c9a969ae3dfc291d2dd98ccf33e5e7abd1 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Mon, 8 Sep 2025 09:30:12 -0700
Subject: [PATCH 022/110] Make changes to native-image-actions
---
.github/workflows/native-build.yml | 48 ++++--------------------------
1 file changed, 5 insertions(+), 43 deletions(-)
diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml
index 984adfe1b..e3d9471e8 100644
--- a/.github/workflows/native-build.yml
+++ b/.github/workflows/native-build.yml
@@ -57,7 +57,7 @@ jobs:
with:
submodules: recursive
- name: "Setup Native Image Tools"
- uses: fprime-community/native-images-action@main
+ uses: Kronos3/native-images-action@unified-tool
- name: "Building JAR files"
run: |
cd ${{ inputs.working-directory }}
@@ -136,7 +136,7 @@ jobs:
with:
submodules: recursive
- name: "Setup Native Image Tools"
- uses: fprime-community/native-images-action@main
+ uses: Kronos3/native-images-action@unified-tool
- name: "Download JARs"
uses: actions/download-artifact@v4
with:
@@ -150,48 +150,10 @@ jobs:
path: ${{ inputs.trace-directory }}
- name: "Build Native Images"
run: |
- # Print and evaluate
- evalp()
- {
- echo "$@"
- "$@"
- }
-
export CLASSPATH="`cd ${{ inputs.trace-directory }}/../..; pwd`:${CLASSPATH}"
cd ${{ inputs.working-directory }}
-
- tool_dir="${{ inputs.output-directory }}"
- native_dir="${tool_dir}-native"
- native_final="${tool_dir}-final"
- mkdir -p "${native_dir}"
- mkdir -p "${native_final}"
-
- jar_file="$tool_dir/fpp.jar"
- out_file="$native_dir/fpp"
- echo "Building $out_file"
- class_path="${CLASSPATH}"
- evalp "$GRAALVM_JAVA_HOME/bin/native-image" -H:PageSize=65536 -cp "${class_path}" $FPP_NATIVE_IMAGE_FLAGS \
- --no-fallback --install-exit-handlers \
- -jar "$jar_file" "$out_file"
- if [ $? -ne 0 ]
- then
- echo "[ERROR] Failed to build $out_file"
- exit 1
- fi
- sync; sync; sync; # Magic to fix filesystem woes
- cp "${out_file}" "${native_final}"
-
- TOOL_NAMES=`cat ${{ inputs.working-directory }}/compiler/tools.txt`
- for tool in $TOOL_NAMES
- do
- echo "Generating wrapper for fpp-$tool in ${native_final}/fpp-$tool"
- echo '#!/bin/sh
- "`dirname $0`/fpp" '$tool' "$@"' > ${native_final}/fpp-$tool
- chmod +x ${native_final}/fpp-$tool
- done
-
- mv "$tool_dir" "$tool_dir.old"
- mv "$native_final" "$tool_dir"
+ tool_names=`cat ${{ inputs.working-directory }}/compiler/tools.txt`
+ $NATIVE_IMAGE_TOOLS_PATH/native-images ${{ inputs.output-directory }} ${tool_names}
shell: bash
- name: "Archive Native Images"
uses: actions/upload-artifact@v4
@@ -250,7 +212,7 @@ jobs:
runs-on: ${{ matrix.run.runner }}
steps:
- name: "Setup Native Image Tools"
- uses: fprime-community/native-images-action@main
+ uses: Kronos3/native-images-action@unified-tool
- name: "Download Native Wheels"
uses: actions/download-artifact@v4
with:
From d1dc49681747ed0a0786a619fb8339c7d645d191 Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Wed, 10 Sep 2025 09:15:20 -0700
Subject: [PATCH 023/110] Put wrapper builds in the FPP CI
---
.github/workflows/native-build.yml | 17 +++++++++++++----
compiler/tools/fpp-format/test/component.fpp | 2 +-
2 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml
index e3d9471e8..166b1c743 100644
--- a/.github/workflows/native-build.yml
+++ b/.github/workflows/native-build.yml
@@ -57,7 +57,7 @@ jobs:
with:
submodules: recursive
- name: "Setup Native Image Tools"
- uses: Kronos3/native-images-action@unified-tool
+ uses: fprime-community/native-images-action@unified-tool
- name: "Building JAR files"
run: |
cd ${{ inputs.working-directory }}
@@ -136,7 +136,7 @@ jobs:
with:
submodules: recursive
- name: "Setup Native Image Tools"
- uses: Kronos3/native-images-action@unified-tool
+ uses: fprime-community/native-images-action@unified-tool
- name: "Download JARs"
uses: actions/download-artifact@v4
with:
@@ -152,8 +152,17 @@ jobs:
run: |
export CLASSPATH="`cd ${{ inputs.trace-directory }}/../..; pwd`:${CLASSPATH}"
cd ${{ inputs.working-directory }}
+ $NATIVE_IMAGE_TOOLS_PATH/native-images ${{ inputs.output-directory }}
+
+ # Generate wrappers for tools
tool_names=`cat ${{ inputs.working-directory }}/compiler/tools.txt`
- $NATIVE_IMAGE_TOOLS_PATH/native-images ${{ inputs.output-directory }} ${tool_names}
+ for tool in $tool_names
+ do
+ echo "Generating wrapper for fpp-$tool in ${native_final}/fpp-$tool"
+ echo '#!/bin/sh
+ "`dirname $0`/fpp" '$tool' "$@"' > ${native_final}/fpp-$tool
+ chmod +x ${native_final}/fpp-$tool
+ done
shell: bash
- name: "Archive Native Images"
uses: actions/upload-artifact@v4
@@ -212,7 +221,7 @@ jobs:
runs-on: ${{ matrix.run.runner }}
steps:
- name: "Setup Native Image Tools"
- uses: Kronos3/native-images-action@unified-tool
+ uses: fprime-community/native-images-action@unified-tool
- name: "Download Native Wheels"
uses: actions/download-artifact@v4
with:
diff --git a/compiler/tools/fpp-format/test/component.fpp b/compiler/tools/fpp-format/test/component.fpp
index 216b1c59b..226cd2b0a 100644
--- a/compiler/tools/fpp-format/test/component.fpp
+++ b/compiler/tools/fpp-format/test/component.fpp
@@ -33,7 +33,7 @@ active component C {
@< Telemetry channel specifier
@ Event specifier
- event E(a: U32, b: F32) severity activity low id 0x00 format "{} counts" throttle 10
+ event E(a: U32, b: F32) severity activity low id 0x00 format "{} counts" throttle 10 every 40 seconds
@< Event specifier
@ Internal port specifier
From 89fc6ed104dc594f0726e994800bbdf2f64a960c Mon Sep 17 00:00:00 2001
From: Andrei Tumbar
Date: Wed, 10 Sep 2025 11:00:49 -0700
Subject: [PATCH 024/110] Time Limited Event Throttle Spec
---
docs/fpp-spec.html | 98 ++++++++++++++++++----
docs/fpp-users-guide.html | 2 +-
docs/index.html | 9 +-
docs/spec/Lexical-Elements.adoc | 22 +++++
docs/spec/Specifiers/Event-Specifiers.adoc | 16 ++++
5 files changed, 128 insertions(+), 19 deletions(-)
diff --git a/docs/fpp-spec.html b/docs/fpp-spec.html
index 15822980f..4a85f817e 100644
--- a/docs/fpp-spec.html
+++ b/docs/fpp-spec.html
@@ -448,12 +448,13 @@ body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-b
3.1. Reserved Words
3.2. Symbols
3.3. Identifiers
-3.4. End-of-Line Tokens
-3.5. Comments
-3.6. Whitespace and Non-Printable Characters
-3.7. Explicit Line Continuations
-3.8. Automatic Suppression of Newlines
-3.9. Collapsing of Newlines
+3.4. Durations
+3.5. End-of-Line Tokens
+3.6. Comments
+3.7. Whitespace and Non-Printable Characters
+3.8. Explicit Line Continuations
+3.9. Automatic Suppression of Newlines
+3.10. Collapsing of Newlines
4. Element Sequences
@@ -1112,6 +1113,9 @@ This process is called lexing .
An identifier .
+A duration .
+
+
An integer literal .
@@ -1328,7 +1332,56 @@ treated as an identifier and not as a reserved word.
-
3.4. End-of-Line Tokens
+
3.4. Durations
+
+
Definition: A duration is a token consisting of a numerical element
+and a duration unit suffix. Durations denote an length of time elapsed.
+Time durations support the following unit suffixes:
+
+
+
+
+ps: Pico-seconds (1e-12 seconds)
+
+
+ns: Nano-seconds (1e-9 seconds)
+
+
+us: Micro-seconds (1e-6 seconds)
+
+
+ms: Milli-seconds (1e-3 seconds)
+
+
+s: Seconds
+
+
+m: Minutes (60 seconds)
+
+
+h: Hours (60 minutes, 3600 seconds)
+
+
+
+
+
+
+
+10ps denotes 10 pico-seconds or 10e-11 seconds
+
+
+20m denotes 20 minutes or 1200 seconds
+
+
+1.5m denotes 1 and a half minutes or 90 seconds
+
+
+
+
+
+
3.5. End-of-Line Tokens
An end-of-line token is a sequence of one or more newlines .
A newline (or line break) is the NL character (ASCII code 0x0A),
@@ -1338,7 +1391,7 @@ character (ASCII code 0x0D). End-of-line tokens separate the elements of
-
+
The lexer ignores comments .
Specifically:
@@ -1357,7 +1410,7 @@ treated as no text.
-
3.6. Whitespace and Non-Printable Characters
+
3.7. Whitespace and Non-Printable Characters
Apart from end-of-line tokens , the
lexer treats whitespace as follows:
@@ -1377,7 +1430,7 @@ in an FPP model outside of a string, comment, or annotation.
-
3.7. Explicit Line Continuations
+
3.8. Explicit Line Continuations
The character \, when appearing before a
newline ,
@@ -1417,7 +1470,7 @@ For example, the following is not syntactically correct:
-
3.8. Automatic Suppression of Newlines
+
3.9. Automatic Suppression of Newlines
The following symbols consume sequences of newlines that
follow them, without creating an
@@ -1484,7 +1537,7 @@ is consumed by the + symbol:
-
3.9. Collapsing of Newlines
+
3.10. Collapsing of Newlines
@@ -6082,6 +6136,10 @@ The type of
e must be convertible to
Integer and must evaluate to an integer
in the range [0,2
31 ).
+
+The optional expression d following every specifies the maximum time period
+to elapse before clearing the event throttle. d must be a valid time duration.
+
@@ -6119,7 +6177,19 @@ event Event2(
severity warning low \
id 0x02 \
format "Saw value {} for case {}" \
- throttle 10
+ throttle 10
+
+@ Event 3
+@ Sample output: "Saw value [ 0.001, 0.002, 0.003 ] for case A"
+event Event3(
+ case: Case @< The case
+ value: F64x3 @< The value
+) \
+ severity warning low \
+ id 0x02 \
+ format "Saw value {} for case {}" \
+ throttle 10
+ every 20s
@@ -11623,7 +11693,7 @@ equivalent.
diff --git a/docs/fpp-users-guide.html b/docs/fpp-users-guide.html
index 835b1e566..97ee1ae0e 100644
--- a/docs/fpp-users-guide.html
+++ b/docs/fpp-users-guide.html
@@ -15700,7 +15700,7 @@ serialized according to its
diff --git a/docs/index.html b/docs/index.html
index 11deeafad..949fcaa1f 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -4,7 +4,7 @@
-
+
F Prime Prime (FPP)