Skip to content

Commit a3ab6c6

Browse files
committed
Add *number as a parsed item in a Semgrex expression. Not implemented in the SemgrexPattern yet, though
1 parent 4f15b08 commit a3ab6c6

File tree

4 files changed

+65
-48
lines changed

4 files changed

+65
-48
lines changed

src/edu/stanford/nlp/semgraph/semgrex/SemgrexParser.java

+48-37
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
6565
case 11:
6666
case 15:
6767
case 17:
68-
case 22:{
68+
case 23:{
6969
node = SubNode(GraphRelation.ROOT);
7070
children.add(node);
7171
label_1:
@@ -135,7 +135,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
135135
}
136136
case 15:
137137
case 17:
138-
case 22:{
138+
case 23:{
139139
result = ModNode(r);
140140
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
141141
case RELATION:
@@ -294,6 +294,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
294294
Token relnType = null;
295295
Token numArg = null;
296296
Token numArg2 = null;
297+
Token graphNumber = null;
297298
Token name = null;
298299
Token edgeName = null;
299300
SemgrexPattern node;
@@ -347,7 +348,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
347348
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
348349
case 20:{
349350
jj_consume_token(20);
350-
name = jj_consume_token(IDENTIFIER);
351+
graphNumber = jj_consume_token(NUMBER);
351352
break;
352353
}
353354
default:
@@ -357,21 +358,31 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
357358
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
358359
case 21:{
359360
jj_consume_token(21);
360-
edgeName = jj_consume_token(IDENTIFIER);
361+
name = jj_consume_token(IDENTIFIER);
361362
break;
362363
}
363364
default:
364365
jj_la1[15] = jj_gen;
365366
;
366367
}
368+
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
369+
case 22:{
370+
jj_consume_token(22);
371+
edgeName = jj_consume_token(IDENTIFIER);
372+
break;
373+
}
374+
default:
375+
jj_la1[16] = jj_gen;
376+
;
377+
}
367378
break;
368379
}
369380
case ALIGNRELN:{
370381
rel = jj_consume_token(ALIGNRELN);
371382
break;
372383
}
373384
default:
374-
jj_la1[16] = jj_gen;
385+
jj_la1[17] = jj_gen;
375386
jj_consume_token(-1);
376387
throw new ParseException();
377388
}
@@ -397,7 +408,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
397408
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
398409
case 15:
399410
case 17:
400-
case 22:{
411+
case 23:{
401412
node = ModNode(reln);
402413
break;
403414
}
@@ -408,7 +419,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
408419
break;
409420
}
410421
default:
411-
jj_la1[17] = jj_gen;
422+
jj_la1[18] = jj_gen;
412423
jj_consume_token(-1);
413424
throw new ParseException();
414425
}
@@ -429,7 +440,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
429440
break;
430441
}
431442
default:
432-
jj_la1[18] = jj_gen;
443+
jj_la1[19] = jj_gen;
433444
break label_4;
434445
}
435446
jj_consume_token(13);
@@ -454,12 +465,12 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
454465
case 14:
455466
case 15:
456467
case 17:
457-
case 22:{
468+
case 23:{
458469
;
459470
break;
460471
}
461472
default:
462-
jj_la1[19] = jj_gen;
473+
jj_la1[20] = jj_gen;
463474
break label_5;
464475
}
465476
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
@@ -468,7 +479,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
468479
break;
469480
}
470481
default:
471-
jj_la1[20] = jj_gen;
482+
jj_la1[21] = jj_gen;
472483
;
473484
}
474485
child = ModNode(r);
@@ -485,7 +496,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
485496
boolean startUnderNeg;
486497
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
487498
case 17:
488-
case 22:{
499+
case 23:{
489500
child = Child(r);
490501
break;
491502
}
@@ -498,7 +509,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
498509
break;
499510
}
500511
default:
501-
jj_la1[21] = jj_gen;
512+
jj_la1[22] = jj_gen;
502513
jj_consume_token(-1);
503514
throw new ParseException();
504515
}
@@ -512,12 +523,12 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
512523
child = NodeDisj(r);
513524
break;
514525
}
515-
case 22:{
526+
case 23:{
516527
child = Description(r);
517528
break;
518529
}
519530
default:
520-
jj_la1[22] = jj_gen;
531+
jj_la1[23] = jj_gen;
521532
jj_consume_token(-1);
522533
throw new ParseException();
523534
}
@@ -541,7 +552,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
541552
break;
542553
}
543554
default:
544-
jj_la1[23] = jj_gen;
555+
jj_la1[24] = jj_gen;
545556
jj_consume_token(-1);
546557
throw new ParseException();
547558
}
@@ -559,7 +570,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
559570
break;
560571
}
561572
default:
562-
jj_la1[24] = jj_gen;
573+
jj_la1[25] = jj_gen;
563574
jj_consume_token(-1);
564575
throw new ParseException();
565576
}
@@ -569,7 +580,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
569580
boolean link = false;
570581
NodeAttributes attributes = new NodeAttributes();
571582
NodePattern pat;
572-
jj_consume_token(22);
583+
jj_consume_token(23);
573584
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
574585
case IDENTIFIER:
575586
case EMPTY:
@@ -578,27 +589,27 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
578589
label_6:
579590
while (true) {
580591
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
581-
case 23:{
592+
case 24:{
582593
;
583594
break;
584595
}
585596
default:
586-
jj_la1[25] = jj_gen;
597+
jj_la1[26] = jj_gen;
587598
break label_6;
588599
}
589-
jj_consume_token(23);
600+
jj_consume_token(24);
590601
AddAttribute(attributes);
591602
}
592603
break;
593604
}
594605
default:
595-
jj_la1[26] = jj_gen;
606+
jj_la1[27] = jj_gen;
596607
;
597608
}
598-
jj_consume_token(24);
609+
jj_consume_token(25);
599610
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
600-
case 21:{
601-
jj_consume_token(21);
611+
case 22:{
612+
jj_consume_token(22);
602613
link = true;
603614
name = jj_consume_token(IDENTIFIER);
604615
String nodeName = name.image;
@@ -612,7 +623,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
612623
break;
613624
}
614625
default:
615-
jj_la1[27] = jj_gen;
626+
jj_la1[28] = jj_gen;
616627
;
617628
}
618629
pat = new NodePattern(r, underNodeNegation, attributes.attributes(), attributes.root(), attributes.empty(), name != null ? name.image : null);
@@ -630,13 +641,13 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
630641
public Token jj_nt;
631642
private int jj_ntk;
632643
private int jj_gen;
633-
final private int[] jj_la1 = new int[28];
644+
final private int[] jj_la1 = new int[29];
634645
static private int[] jj_la1_0;
635646
static {
636647
jj_la1_init_0();
637648
}
638649
private static void jj_la1_init_0() {
639-
jj_la1_0 = new int[] {0x400,0x428808,0x3801c,0x3801c,0x428800,0x2000,0x3c01c,0x4000,0x3801c,0x2001c,0x80000,0x10,0x110,0x110,0x100000,0x200000,0x1c,0x428800,0x2000,0x42c000,0x4000,0x428000,0x420000,0x110,0xd0,0x800000,0xd0,0x200000,};
650+
jj_la1_0 = new int[] {0x400,0x828808,0x3801c,0x3801c,0x828800,0x2000,0x3c01c,0x4000,0x3801c,0x2001c,0x80000,0x10,0x110,0x110,0x100000,0x200000,0x400000,0x1c,0x828800,0x2000,0x82c000,0x4000,0x828000,0x820000,0x110,0xd0,0x1000000,0xd0,0x400000,};
640651
}
641652

642653
/** Constructor with InputStream. */
@@ -650,7 +661,7 @@ public SemgrexParser(java.io.InputStream stream, String encoding) {
650661
token = new Token();
651662
jj_ntk = -1;
652663
jj_gen = 0;
653-
for (int i = 0; i < 28; i++) jj_la1[i] = -1;
664+
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
654665
}
655666

656667
/** Reinitialise. */
@@ -664,7 +675,7 @@ public void ReInit(java.io.InputStream stream, String encoding) {
664675
token = new Token();
665676
jj_ntk = -1;
666677
jj_gen = 0;
667-
for (int i = 0; i < 28; i++) jj_la1[i] = -1;
678+
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
668679
}
669680

670681
/** Constructor. */
@@ -674,7 +685,7 @@ public SemgrexParser(java.io.Reader stream) {
674685
token = new Token();
675686
jj_ntk = -1;
676687
jj_gen = 0;
677-
for (int i = 0; i < 28; i++) jj_la1[i] = -1;
688+
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
678689
}
679690

680691
/** Reinitialise. */
@@ -692,7 +703,7 @@ public void ReInit(java.io.Reader stream) {
692703
token = new Token();
693704
jj_ntk = -1;
694705
jj_gen = 0;
695-
for (int i = 0; i < 28; i++) jj_la1[i] = -1;
706+
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
696707
}
697708

698709
/** Constructor with generated Token Manager. */
@@ -701,7 +712,7 @@ public SemgrexParser(SemgrexParserTokenManager tm) {
701712
token = new Token();
702713
jj_ntk = -1;
703714
jj_gen = 0;
704-
for (int i = 0; i < 28; i++) jj_la1[i] = -1;
715+
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
705716
}
706717

707718
/** Reinitialise. */
@@ -710,7 +721,7 @@ public void ReInit(SemgrexParserTokenManager tm) {
710721
token = new Token();
711722
jj_ntk = -1;
712723
jj_gen = 0;
713-
for (int i = 0; i < 28; i++) jj_la1[i] = -1;
724+
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
714725
}
715726

716727
private Token jj_consume_token(int kind) throws ParseException {
@@ -761,12 +772,12 @@ private int jj_ntk_f() {
761772
/** Generate ParseException. */
762773
public ParseException generateParseException() {
763774
jj_expentries.clear();
764-
boolean[] la1tokens = new boolean[25];
775+
boolean[] la1tokens = new boolean[26];
765776
if (jj_kind >= 0) {
766777
la1tokens[jj_kind] = true;
767778
jj_kind = -1;
768779
}
769-
for (int i = 0; i < 28; i++) {
780+
for (int i = 0; i < 29; i++) {
770781
if (jj_la1[i] == jj_gen) {
771782
for (int j = 0; j < 32; j++) {
772783
if ((jj_la1_0[i] & (1<<j)) != 0) {
@@ -775,7 +786,7 @@ public ParseException generateParseException() {
775786
}
776787
}
777788
}
778-
for (int i = 0; i < 25; i++) {
789+
for (int i = 0; i < 26; i++) {
779790
if (la1tokens[i]) {
780791
jj_expentry = new int[1];
781792
jj_expentry[0] = i;

src/edu/stanford/nlp/semgraph/semgrex/SemgrexParser.jj

+3-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ TOKEN:
6464
{
6565
< RELATION: "<" | ">" | ">>" | "<<" | "==" | "$+" | "$-" | "$++" | "$--" | "." | ".." | "-" | "--" | ">++" | ">--" | "<++" | "<--" >
6666
| < ALIGNRELN: "@" >
67-
| < IDENTIFIER: (~[" ", "\n", "\r", "(", "/", "|", "@", "!", "#", "%", "&", ")", "=", "?", "[", "]", ">", "<", "~", ".", ",", "$", ":", ";", "{", "}", "+", "-"])+ >
67+
| < IDENTIFIER: (~[" ", "\n", "\r", "(", "/", "|", "@", "!", "#", "%", "&", ")", "=", "?", "[", "]", ">", "<", "~", ".", ",", "$", ":", ";", "{", "}", "+", "-", "*"])+ >
6868
| < NUMBER: ( ["0"-"9"] )+ >
6969
| < EMPTY: "#" >
7070
| < ROOT: "$" >
@@ -179,6 +179,7 @@ SemgrexPattern Relation() : {
179179
Token relnType = null;
180180
Token numArg = null;
181181
Token numArg2 = null;
182+
Token graphNumber = null;
182183
Token name = null;
183184
Token edgeName = null;
184185
SemgrexPattern node;
@@ -187,6 +188,7 @@ SemgrexPattern Relation() : {
187188
(
188189
( ( ( (numArg = <IDENTIFIER> ("," numArg2 = <IDENTIFIER>)?)? rel = <RELATION>
189190
(relnType = <IDENTIFIER> | relnType = <REGEX>)?)
191+
(( ("*") graphNumber = <NUMBER> ) )?
190192
(( ("~") name = <IDENTIFIER> ) )?
191193
(( ("=") edgeName = <IDENTIFIER> ) )? )
192194
| (rel = <ALIGNRELN>))

src/edu/stanford/nlp/semgraph/semgrex/SemgrexParserConstants.java

+1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ interface SemgrexParserConstants {
5252
"\"[\"",
5353
"\"]\"",
5454
"\",\"",
55+
"\"*\"",
5556
"\"~\"",
5657
"\"=\"",
5758
"\"{\"",

0 commit comments

Comments
 (0)