Skip to content

Commit 033831b

Browse files
author
mike dupont
committed
cublas
1 parent 128739e commit 033831b

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed

grammars/cublas.gebnf

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

grammars/mysql.gebnf

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
2+
3+
4+
5+
6+
# Define a table definition
7+
8+
9+
tablename ::= [a-zA-Z_][a-zA-Z0-9_]*
10+
11+
# Define column definitions
12+
columndefinitions ::= columndefinition+
13+
14+
# Define a column definition
15+
columndefinition ::= columnname " " datatype
16+
17+
# Define a column name
18+
columnname ::= [a-zA-Z_][a-zA-Z0-9_]*
19+
20+
# Define a data type
21+
datatype ::= "INT" | "VARCHAR" | "DATE"
22+
23+
# Define relationship definitions
24+
relationshipdefinitions ::= relationshipdefinition+
25+
26+
# Define a relationship definition
27+
relationshipdefinition ::= "FOREIGN KEY (" columnname ") REFERENCES " tablename " (" columnname ")"
28+
29+
# Define ID tokens for each table
30+
tableidtokens ::= tableidtoken+
31+
32+
# Define an ID token for a table
33+
tableidtoken ::= tablename "_id"
34+
35+
# Define predicates for each table ID
36+
tableidpredicates ::= tableidpredicate+
37+
38+
# Define predicates for a table ID
39+
tableidpredicate ::= tableidtoken "." columnname
40+
41+
# Define optional whitespace between components
42+
ws ::= [ \t\n]+
43+
44+
tabledefinition ::= "CREATE TABLE " tablename " (" columndefinitions ")" "\n"
45+
46+
tabledefinitions ::= tabledefinition+
47+
48+
root ::= tabledefinitions relationshipdefinitions

0 commit comments

Comments
 (0)