Skip to content

Commit

Permalink
Add in default support for set of
Browse files Browse the repository at this point in the history
  • Loading branch information
jchambers-ln committed Mar 26, 2024
1 parent 378da89 commit b95e54b
Show file tree
Hide file tree
Showing 11 changed files with 1,028 additions and 690 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ opts:
opt:
maxlength
| maxcount
| setdefaultvalall
| setdefaultval
| defaultval
| xpath
| xmldefaultval
Expand All @@ -93,7 +95,7 @@ maxcount:
;

defaultval:
'DEFAULT' OPAREN STRING CPAREN
('DEFAULT' OPAREN STRING CPAREN)
;

xpath:
Expand All @@ -104,6 +106,13 @@ xmldefaultval:
'XMLDEFAULT' OPAREN STRING CPAREN
;

setdefaultval:
'DEFAULT' OPAREN SETSTRING CPAREN
;
setdefaultvalall:
'DEFAULT' OPAREN 'ALL' CPAREN
;

annotation_name : ATOKEN;
annotation_param : (TOKEN|UTOKEN);
annotation_arguments : annotation_param (COMMA annotation_param)*;
Expand All @@ -114,6 +123,8 @@ comment:
( '/*' annotation? (COMMA annotation)* .*? (.*?'*/' | '*/'))
;

OSQUARE : '[';
CSQUARE : ']';
OPAREN : '(';
CPAREN : ')';
OCURLY : '{';
Expand All @@ -130,9 +141,11 @@ DATASET_SYM : 'DATASET';
WS : [ \t\r\n] -> skip;
INT : [0-9]+ ;
fragment ESCAPED_QUOTE : '\\\'';
SETSTRING : '[\'' ( ESCAPED_QUOTE | SETTOKEN | ('\'') | ~(']'))* '\']';
STRING : '\'' ( ESCAPED_QUOTE | ~('\'') )* '\'';
ATOKEN: [@][a-zA-Z0-9_-]+[a-zA-Z0-9_];
TOKEN : ~[_\r\n\t; (),:={}-]~[\r\n \t;(),:={}-]* ;
UTOKEN: [_]+[a-zA-Z0-9_-]+[a-zA-Z0-9_];
ECL_NUMBERED_TYPE: TOKEN INT?;
SETTOKEN: [a-zA-Z0-9,_-];

Original file line number Diff line number Diff line change
Expand Up @@ -396,6 +396,68 @@ else if (currentrec != null)
}
}


@Override
public void enterSetdefaultvalall(EclRecordParser.SetdefaultvalallContext ctx) {
String val = ctx.getChild(2).getText();
val = val.replace("'", "");

if (currentfield != null)
{
currentfield.setColumnValue(val);
}
else if (currentrec != null)
{
currentrec.setColumnValue(val);
}
}


/**
* {@inheritDoc}
*
* <p>
* When entering a DEFAULT option for Set Of, set the columnvalue of the current field/rec to its value
* </p>
*/
@Override
public void enterSetdefaultval(EclRecordParser.SetdefaultvalContext ctx)
{
String val = ctx.getChild(2).getText();
if(val.length() >= 2){
if(val.substring(0, 2).equals("['")) {
val = val.substring(2, val.length());
}
}
if(val.length() >= 2){
if(val.substring(val.length()-2, val.length()).equals("']")) {
val = val.substring(0, val.length() - 2);
}
}
//val = val.replaceFirst("(\[')", "");
//val = val.replace("['", "");
val = val.replace("']", "");

if(val.contains("','")){
if(!val.startsWith("'")) {
val = "'" + val;
}
if(!val.endsWith("'")){
val = val + "'";
}
}
if (currentfield != null)
{
currentfield.setColumnValue(val);
}
else if (currentrec != null)
{
currentrec.setColumnValue(val);
}


}

/**
* {@inheritDoc}
*
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,29 @@ T__11=12
T__12=13
T__13=14
T__14=15
OPAREN=16
CPAREN=17
OCURLY=18
CCURLY=19
COMMA=20
SEMI=21
EQ=22
ASSING_SYM=23
REC_SYM=24
END_SYM=25
DATASET_SYM=26
WS=27
INT=28
STRING=29
ATOKEN=30
TOKEN=31
UTOKEN=32
ECL_NUMBERED_TYPE=33
T__15=16
OSQUARE=17
CSQUARE=18
OPAREN=19
CPAREN=20
OCURLY=21
CCURLY=22
COMMA=23
SEMI=24
EQ=25
ASSING_SYM=26
REC_SYM=27
END_SYM=28
DATASET_SYM=29
WS=30
INT=31
SETSTRING=32
STRING=33
ATOKEN=34
TOKEN=35
UTOKEN=36
ECL_NUMBERED_TYPE=37
SETTOKEN=38
'SET OF'=1
'set of'=2
'MAXLENGTH'=3
Expand All @@ -43,16 +48,19 @@ ECL_NUMBERED_TYPE=33
'DEFAULT'=10
'XPATH'=11
'XMLDEFAULT'=12
'//'=13
'/*'=14
'*/'=15
'('=16
')'=17
'{'=18
'}'=19
','=20
'='=22
':='=23
'RECORD'=24
'END'=25
'DATASET'=26
'ALL'=13
'//'=14
'/*'=15
'*/'=16
'['=17
']'=18
'('=19
')'=20
'{'=21
'}'=22
','=23
'='=25
':='=26
'RECORD'=27
'END'=28
'DATASET'=29
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,30 @@ public class EclRecordBaseListener implements EclRecordListener {
* <p>The default implementation does nothing.</p>
*/
@Override public void exitXmldefaultval(EclRecordParser.XmldefaultvalContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterSetdefaultval(EclRecordParser.SetdefaultvalContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitSetdefaultval(EclRecordParser.SetdefaultvalContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterSetdefaultvalall(EclRecordParser.SetdefaultvalallContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitSetdefaultvalall(EclRecordParser.SetdefaultvalallContext ctx) { }
/**
* {@inheritDoc}
*
Expand Down

Large diffs are not rendered by default.

Loading

0 comments on commit b95e54b

Please sign in to comment.