summaryrefslogtreecommitdiffstats
path: root/tests/front-end/parser-decls.spire
diff options
context:
space:
mode:
Diffstat (limited to 'tests/front-end/parser-decls.spire')
-rw-r--r--tests/front-end/parser-decls.spire60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/front-end/parser-decls.spire b/tests/front-end/parser-decls.spire
new file mode 100644
index 000000000..bc5a2b13b
--- /dev/null
+++ b/tests/front-end/parser-decls.spire
@@ -0,0 +1,60 @@
+//TEST:SIMPLE:
+// test that we can parse all the expected kinds of declarations
+
+// global-scope `using` is another test
+
+/* Note(tfoley): disabled during syntax transition
+// pipeline
+pipeline P
+{
+
+}
+*/
+
+// empty declaration
+;
+
+// struct type
+struct Pair
+{
+ int head;
+ float tail;
+
+// Note(tfoley): semicolon is expected/required
+// here for compatibility with HLSL (C-style
+// declarators).
+//
+// TODO: this could be removed if we treat
+// HLSL as a "compatibility mode"
+};
+
+// function at global scope
+float tail(Pair p) { return p.tail; }
+
+/* Note(tfoley): disabled during syntax transition
+
+// module
+module M
+{
+ // component declarations
+
+ // using declarations
+
+}
+
+// a module can "inherit" from a pipeline
+module M2
+ targets P
+{
+}
+
+// shader
+shader S
+{
+ // component declarations
+
+ // using declarations
+
+}
+
+*/ \ No newline at end of file