diff --git a/.idea/filigree-texts.iml b/.idea/filigree-texts.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/filigree-texts.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..ab0beb4
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mtg.g4 b/mtg.g4
new file mode 100644
index 0000000..70e20b7
--- /dev/null
+++ b/mtg.g4
@@ -0,0 +1,27 @@
+grammar mtg;
+
+// Take care of whitespace.
+WS : [ \r\t]+ -> skip;
+
+/*
+This will be the entry point of our parser.
+*/
+evaluate
+ : textbox?
+ ;
+
+/*
+Split everything into rows, divided by newlines. Can be 0 to infinite number of rows.
+Can't quite get it to ignore newlines on last line...
+*/
+textbox
+ : (row '\n')*
+ ;
+
+/*
+Every row either has one ability, or a list of them.
+*/
+row
+ : ability
+ | ability_list
+ ;