Skip to content

Commit 5444462

Browse files
committed
Add info_statement
1 parent bda9e6b commit 5444462

File tree

7 files changed

+63664
-62762
lines changed

7 files changed

+63664
-62762
lines changed

examples/info.surql

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
-- Root information
2+
INFO FOR ROOT;
3+
4+
-- Namespace information
5+
INFO FOR NS;
6+
7+
-- Database information
8+
INFO FOR DB;
9+
10+
-- Table information
11+
INFO FOR TABLE user;
12+
13+
-- User information
14+
INFO FOR USER root ON ROOT;
15+
INFO FOR USER ns_user ON NAMESPACE;
16+
INFO FOR USER db_user ON DATABASE;

grammar.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ module.exports = grammar({
1919
),
2020
),
2121
semi_colon: _ => token(";"),
22+
keyword_info: _ => token("INFO"),
2223
keyword_if: _ => token("IF"),
2324
keyword_exists: _ => token("EXISTS"),
2425
keyword_tokenizers: _ => token("TOKENIZERS"),
@@ -170,6 +171,7 @@ module.exports = grammar({
170171
keyword_signin: _ => token("SIGNIN"),
171172
keyword_signup: _ => token("SIGNUP"),
172173
keyword_database: _ => token("DATABASE"),
174+
keyword_namespace: _ => token("NAMESPACE"),
173175
keyword_password: _ => token("PASSWORD"),
174176
keyword_password_hash: _ => token("PASSHASH"),
175177
keyword_on_duplicate_key_update: _ => token("ON DUPLICATE KEY UPDATE"),
@@ -218,6 +220,18 @@ module.exports = grammar({
218220
$.relate_statement,
219221
$.delete_statement,
220222
$.use_statement,
223+
$.info_statement,
224+
),
225+
226+
info_statement: $ => seq($.keyword_info, $.keyword_for, $.info_target),
227+
228+
info_target: $ =>
229+
choice(
230+
$.root_info,
231+
$.namespace_info,
232+
$.database_info,
233+
$.table_info,
234+
$.user_info,
221235
),
222236

223237
use_statement: $ =>
@@ -563,6 +577,22 @@ module.exports = grammar({
563577

564578
// Clauses
565579

580+
root_info: $ => $.keyword_root,
581+
582+
namespace_info: $ => choice($.keyword_ns, $.keyword_namespace),
583+
584+
database_info: $ => choice($.keyword_db, $.keyword_database),
585+
586+
table_info: $ => seq($.keyword_table, $.identifier),
587+
588+
user_info: $ =>
589+
seq($.keyword_user, $.identifier, optional($.on_level_clause)),
590+
591+
on_level_clause: $ => seq($.keyword_on, $.level_clause),
592+
593+
level_clause: $ =>
594+
choice($.keyword_root, $.keyword_namespace, $.keyword_database),
595+
566596
ns_clause: $ => seq($.keyword_ns, $.identifier),
567597
db_clause: $ => seq($.keyword_db, $.identifier),
568598

queries/highlights.scm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@
134134
(keyword_ignore)
135135
(keyword_values)
136136
(keyword_for)
137+
(keyword_info)
137138
(keyword_comment)
138139
(keyword_fields)
139140
(keyword_columns)

src/grammar.json

Lines changed: 151 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)