Skip to content

Commit

Permalink
v 1.2.0 release
Browse files Browse the repository at this point in the history
  • Loading branch information
ujjwalguptaofficial committed Oct 27, 2018
1 parent 7c93dd0 commit 2b46eba
Show file tree
Hide file tree
Showing 8 changed files with 1,840 additions and 2,078 deletions.
67 changes: 36 additions & 31 deletions dist/grammar.pegjs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ createQuery = db:createDbQuery tables:createTableQuery* {
}
}

createDbQuery = DEFINE _* (DATABASE/DB) _* name:dbName ";"? {
createDbQuery = DEFINE _* DB _* name:dbName ";"? {
return {
name:name
}
Expand Down Expand Up @@ -183,7 +183,7 @@ return = RETURN{



removeQuery = (REMOVE/DELETE) _* FROM _ table:tableName _* where:whereQry? _*
removeQuery = DELETE _* FROM _ table:tableName _* where:whereQry? _*
option:(ignoreCase)* {
var ignoreCase =false;
option.forEach(val=>{
Expand Down Expand Up @@ -280,11 +280,15 @@ aggregateQry = ("*"_)/ aggr: aggregate _ {
return aggr[0];
}

aggregate = AGGREGATE _* "[" _* first: aggregateType _* rest: inBetweenAggregateColumn* _* "]" {
aggregate = "["first: aggregateType _* rest: inBetweenAggregateColumn* "]" {
rest.splice(0,0,first);
return rest;
}

inBetweenAggregateColumn = "," _* val:aggregateType _*{
return val;
}

aggregateType = minAggregate/ maxAggregate/avgAggregate/countAggregate/sumAggregate

maxAggregate = MAX _* "(" _* first: column _* rest:inBetweenParanthesisColumn* _* ")" {
Expand Down Expand Up @@ -404,7 +408,7 @@ whereitems = item1:(whereQryWithoutParanthesis/whereQryWithParanthesis) item2:jo

joinWhereItems = _ op:JoinOp _* where:(whereQryWithoutParanthesis/whereQryWithParanthesis) {

if(op==='|'){
if(op==='||'){
var obj={};
if(Array.isArray(where)){
where.forEach(val=>{
Expand Down Expand Up @@ -458,7 +462,7 @@ whereQryWithParanthesis = "(" _* fw: firstWhere jw:joinWhereItem* _* ")" {
firstWhere = whereItem

joinWhereItem = _ op:JoinOp _ item:whereItem {
if(op==='|'){
if(op==='||'){
return {
or: item
}
Expand Down Expand Up @@ -507,36 +511,35 @@ inBetweenParanthesisColumn = "," _* val:column _*{
return val;
}

inBetweenAggregateColumn = "," _* val:aggregateType _*{
return val;
}

inBetweenParanthesisItem = "," _* val:value _*{
return val;
}

likeItem = col:column _* LIKE _* val:likeType {
return {
[col]:{
like:val.join('')
like:val
}
}
}

likeType = (('%'_* value _* '%')/('%'_* value)/(value _* '%'))
likeType = likeType1/likeType2/likeType3

value "column value"= val:ColumnValue+ {
var value=val.join("");
if(value[0]=== "'" && value[value.length-1] === "'"){
return value.substr(1,value.length-2);
}
var number = Number(value);
if(isNaN(number))
return value;
else
return number;
likeType1= "'%"_* val:Word _* "%'"{
return "%"+val+"%";
}

likeType2 = "'%"_* val:Word"'" {
return "%"+ val;
}

likeType3 = "'"val:Word _* "%'" {
return val+"%";
}





updateQuery = UPDATE _ table:tableName _* SET _* set: updateValue _* where:whereQry? _* option:(ignoreCase)* {

Expand Down Expand Up @@ -611,23 +614,29 @@ JoinOp= And/Or;

OrderByTypes "order type" = "asc"/"desc" ;

And = "&";
And = "&&";

Or = "|";
Or = "||";

ColumnValue=[a-zA-Z0-9@_'#*!~$+=/|\:.?-]
value "column value"= val:(ColumnValue/Number) {
return val;
}

ColumnValue= "'" val:Word "'" {
return val;
}

Identifier "identifier"= val:[a-zA-Z_]+ {
return val.join("");
}

Word = l:Letter+ {return l.join("");}
Word "word"= l:Letter+ {return l.join("");}

WordAndNumber = [a-zA-Z0-9]

Letter = [a-zA-Z]
Letter = [^'%]

Number= d:Digit+ {return Number(d.join(""))}
Number "number"= d:Digit+ {return Number(d.join(""))}

Digit=[0-9]

Expand Down Expand Up @@ -712,8 +721,6 @@ UPDATE "update" = U P D A T E;

SET "set" = S E T;

REMOVE "remove" = R E M O V E;

DELETE "delete" = D E L E T E;

VERSION "version" = V E R S I O N;
Expand Down Expand Up @@ -746,8 +753,6 @@ DEFAULT "default" = D E F A U L T;

DEFINE "define" = D E F I N E;

DATABASE "database" = D A T A B A S E;

TABLE "table" = T A B L E;

DB "db" = D B;
Expand Down
Loading

0 comments on commit 2b46eba

Please sign in to comment.