diff --git a/.gitignore b/.gitignore
index b434f54..40b223d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@ hs_err_pid*
*.iml
pub/
+target/
diff --git a/pard-assembly/pom.xml b/pard-assembly/pom.xml
index 88ce8aa..d1893e9 100644
--- a/pard-assembly/pom.xml
+++ b/pard-assembly/pom.xml
@@ -11,5 +11,7 @@
pard-assembly
-
+
+ ${project.parent.basedir}
+
\ No newline at end of file
diff --git a/pard-catalog/pom.xml b/pard-catalog/pom.xml
index 27e215c..96ea9c6 100644
--- a/pard-catalog/pom.xml
+++ b/pard-catalog/pom.xml
@@ -11,5 +11,7 @@
pard-catalog
-
+
+ ${project.parent.basedir}
+
\ No newline at end of file
diff --git a/pard-communication/pom.xml b/pard-communication/pom.xml
index 1c1fd88..09db1f7 100644
--- a/pard-communication/pom.xml
+++ b/pard-communication/pom.xml
@@ -11,5 +11,7 @@
pard-communication
-
+
+ ${project.parent.basedir}
+
\ No newline at end of file
diff --git a/pard-connector-mysql/pom.xml b/pard-connector-mysql/pom.xml
index bad0280..c7aef7e 100644
--- a/pard-connector-mysql/pom.xml
+++ b/pard-connector-mysql/pom.xml
@@ -11,5 +11,7 @@
pard-connector-mysql
-
+
+ ${project.parent.basedir}
+
\ No newline at end of file
diff --git a/pard-connector-postgresql/pom.xml b/pard-connector-postgresql/pom.xml
index f0f4e2c..c4b3414 100644
--- a/pard-connector-postgresql/pom.xml
+++ b/pard-connector-postgresql/pom.xml
@@ -11,5 +11,7 @@
pard-connector-postgresql
-
+
+ ${project.parent.basedir}
+
\ No newline at end of file
diff --git a/pard-connector/pom.xml b/pard-connector/pom.xml
index 38e68ad..6d6bedf 100644
--- a/pard-connector/pom.xml
+++ b/pard-connector/pom.xml
@@ -11,5 +11,7 @@
pard-connector
-
+
+ ${project.parent.basedir}
+
\ No newline at end of file
diff --git a/pard-main/pom.xml b/pard-main/pom.xml
index 9502e3e..aa84014 100644
--- a/pard-main/pom.xml
+++ b/pard-main/pom.xml
@@ -11,5 +11,7 @@
pard-main
-
+
+ ${project.parent.basedir}
+
\ No newline at end of file
diff --git a/pard-nodekeeper/pom.xml b/pard-nodekeeper/pom.xml
index 8a25c77..8aa63fe 100644
--- a/pard-nodekeeper/pom.xml
+++ b/pard-nodekeeper/pom.xml
@@ -11,5 +11,7 @@
pard-nodekeeper
-
+
+ ${project.parent.basedir}
+
\ No newline at end of file
diff --git a/pard-optimizer/pom.xml b/pard-optimizer/pom.xml
index 818b761..d5d04b6 100644
--- a/pard-optimizer/pom.xml
+++ b/pard-optimizer/pom.xml
@@ -11,5 +11,7 @@
pard-optimizer
-
+
+ ${project.parent.basedir}
+
\ No newline at end of file
diff --git a/pard-parser/pom.xml b/pard-parser/pom.xml
index 570f22a..522def7 100644
--- a/pard-parser/pom.xml
+++ b/pard-parser/pom.xml
@@ -11,5 +11,23 @@
pard-parser
+
+ ${project.parent.basedir}
+
+
+
+ org.antlr
+ antlr4-runtime
+
+
+
+
+
+
+ org.antlr
+ antlr4-maven-plugin
+
+
+
\ No newline at end of file
diff --git a/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/AstBuilder.java b/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/AstBuilder.java
new file mode 100644
index 0000000..9652c3e
--- /dev/null
+++ b/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/AstBuilder.java
@@ -0,0 +1,10 @@
+package cn.edu.ruc.iir.pard.sql.parser;
+
+/**
+ * pard
+ *
+ * @author guodong
+ */
+public class AstBuilder
+{
+}
diff --git a/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/CaseInsensitiveStream.java b/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/CaseInsensitiveStream.java
new file mode 100644
index 0000000..d80514b
--- /dev/null
+++ b/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/CaseInsensitiveStream.java
@@ -0,0 +1,10 @@
+package cn.edu.ruc.iir.pard.sql.parser;
+
+/**
+ * pard
+ *
+ * @author guodong
+ */
+public class CaseInsensitiveStream
+{
+}
diff --git a/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/DelimiterLexer.java b/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/DelimiterLexer.java
new file mode 100644
index 0000000..8ebce7a
--- /dev/null
+++ b/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/DelimiterLexer.java
@@ -0,0 +1,10 @@
+package cn.edu.ruc.iir.pard.sql.parser;
+
+/**
+ * pard
+ *
+ * @author guodong
+ */
+public class DelimiterLexer
+{
+}
diff --git a/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/SqlParser.java b/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/SqlParser.java
new file mode 100644
index 0000000..9cd7d7c
--- /dev/null
+++ b/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/SqlParser.java
@@ -0,0 +1,10 @@
+package cn.edu.ruc.iir.pard.sql.parser;
+
+/**
+ * pard
+ *
+ * @author guodong
+ */
+public class SqlParser
+{
+}
diff --git a/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/StatementSplitter.java b/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/StatementSplitter.java
new file mode 100644
index 0000000..60790c5
--- /dev/null
+++ b/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/parser/StatementSplitter.java
@@ -0,0 +1,10 @@
+package cn.edu.ruc.iir.pard.sql.parser;
+
+/**
+ * pard
+ *
+ * @author guodong
+ */
+public class StatementSplitter
+{
+}
diff --git a/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/tree/Node.java b/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/tree/Node.java
new file mode 100644
index 0000000..0bc9bfb
--- /dev/null
+++ b/pard-parser/src/main/java/cn/edu/ruc/iir/pard/sql/tree/Node.java
@@ -0,0 +1,10 @@
+package cn.edu.ruc.iir.pard.sql.tree;
+
+/**
+ * pard
+ *
+ * @author guodong
+ */
+public class Node
+{
+}
diff --git a/pom.xml b/pom.xml
index fdbebd3..4d45f1d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,4 +21,84 @@
pard-optimizer
+
+ 4.6
+ false
+ true
+ ${project.basedir}
+
+
+
+
+
+ org.antlr
+ antlr4-runtime
+ ${antlr.version}
+
+
+
+
+
+
+
+
+ org.antlr
+ antlr4-maven-plugin
+ ${antlr.version}
+
+
+
+ antlr4
+
+
+
+
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 2.4.3
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-checkstyle-plugin
+ 2.17
+
+
+ validate
+
+ check
+
+
+ ${check-style.skip}
+ ${check-style.failOnViolation}
+ true
+ true
+ ${main.basedir}/src/checkstyle/checks.xml
+
+ ${project.build.sourceDirectory}
+
+
+ ${project.build.testSourceDirectory}
+
+
+
+
+
+
+ com.puppycrawl.tools
+ checkstyle
+ 7.3
+
+
+
+
+
\ No newline at end of file
diff --git a/src/checkstyle/checks.xml b/src/checkstyle/checks.xml
new file mode 100644
index 0000000..eb8770d
--- /dev/null
+++ b/src/checkstyle/checks.xml
@@ -0,0 +1,207 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+