Repository: AlecStrong/sql-psi (kotlin)

Issue:
Hsql named arguments
Dialect: H2

failing sql: wherever named arguments are used, eg:

```sql
SELECT * FROM tablename WHERE columnname = :arg;
```

Error:
```
<binary like operator real>, <column expr real>, <compound operator real>, <exists expr real>, <expr>, <literal value real>, '?', BETWEEN, GROUP, IN, LIMIT, ORDER, RAISE or id expected, got ':'
```

Pull request:
Fixes #220

Patch:
diff --git a/core/src/main/kotlin/com/alecstrong/sql/psi/core/hsql/hsql.bnf b/core/src/main/kotlin/com/alecstrong/sql/psi/core/hsql/hsql.bnf
index f473d3ad..f87d5e57 100644
--- a/core/src/main/kotlin/com/alecstrong/sql/psi/core/hsql/hsql.bnf
+++ b/core/src/main/kotlin/com/alecstrong/sql/psi/core/hsql/hsql.bnf
@@ -23,7 +23,7 @@
     "static com.alecstrong.sql.psi.core.psi.SqlTypes.WITHOUT"
   ]
 }
-overrides ::= type_name | column_constraint
+overrides ::= type_name | column_constraint | bind_parameter
 type_name ::= (
   tiny_int_data_type |
   small_int_data_type |
@@ -57,6 +57,11 @@ column_constraint ::= [ CONSTRAINT {identifier} ] (
   implements = "com.alecstrong.sql.psi.core.psi.SqlColumnConstraint"
   override = true
 }
+bind_parameter ::= ( '?' | ':' {identifier} ) {
+  extends = "com.alecstrong.sql.psi.core.psi.impl.SqlBindParameterImpl"
+  implements = "com.alecstrong.sql.psi.core.psi.SqlBindParameter"
+  override = true
+}
 
 tiny_int_data_type ::= 'TINYINT'
 small_int_data_type ::= 'SMALLINT'


Test patch:
diff --git a/core/src/test/fixtures_hsql/named-parameters-valid/NamedParameter.s b/core/src/test/fixtures_hsql/named-parameters-valid/NamedParameter.s
new file mode 100644
index 00000000..ed05a645
--- /dev/null
+++ b/core/src/test/fixtures_hsql/named-parameters-valid/NamedParameter.s
@@ -0,0 +1,8 @@
+CREATE TABLE test (
+  _id INTEGER NOT NULL,
+  name VARCHAR(100) NOT NULL
+);
+
+SELECT *
+FROM test
+WHERE _id = :id AND name = ?;