Skip to content

Commit 5cfc4b1

Browse files
committed
Add *number as a parsed item in a Semgrex expression. Not implemented in the SemgrexPattern yet, though
1 parent 7399e9b commit 5cfc4b1

File tree

4 files changed

+72
-56
lines changed

4 files changed

+72
-56
lines changed

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

+51-40
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 23:{
68+
case 24:{
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 23:{
138+
case 24:{
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 23:{
411+
case 24:{
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 23:{
468+
case 24:{
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 23:{
499+
case 24:{
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 23:{
526+
case 24:{
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
}
@@ -536,12 +547,12 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
536547
attrType = jj_consume_token(10);
537548
break;
538549
}
539-
case 22:{
540-
attrType = jj_consume_token(22);
550+
case 23:{
551+
attrType = jj_consume_token(23);
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
}
@@ -555,7 +566,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
555566
break;
556567
}
557568
default:
558-
jj_la1[24] = jj_gen;
569+
jj_la1[25] = jj_gen;
559570
jj_consume_token(-1);
560571
throw new ParseException();
561572
}
@@ -576,7 +587,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
576587
break;
577588
}
578589
default:
579-
jj_la1[25] = jj_gen;
590+
jj_la1[26] = jj_gen;
580591
jj_consume_token(-1);
581592
throw new ParseException();
582593
}
@@ -586,7 +597,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
586597
boolean link = false;
587598
NodeAttributes attributes = new NodeAttributes();
588599
NodePattern pat;
589-
jj_consume_token(23);
600+
jj_consume_token(24);
590601
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
591602
case IDENTIFIER:
592603
case EMPTY:
@@ -595,27 +606,27 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
595606
label_6:
596607
while (true) {
597608
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
598-
case 24:{
609+
case 25:{
599610
;
600611
break;
601612
}
602613
default:
603-
jj_la1[26] = jj_gen;
614+
jj_la1[27] = jj_gen;
604615
break label_6;
605616
}
606-
jj_consume_token(24);
617+
jj_consume_token(25);
607618
AddAttribute(attributes);
608619
}
609620
break;
610621
}
611622
default:
612-
jj_la1[27] = jj_gen;
623+
jj_la1[28] = jj_gen;
613624
;
614625
}
615-
jj_consume_token(25);
626+
jj_consume_token(26);
616627
switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) {
617-
case 21:{
618-
jj_consume_token(21);
628+
case 22:{
629+
jj_consume_token(22);
619630
link = true;
620631
name = jj_consume_token(IDENTIFIER);
621632
String nodeName = name.image;
@@ -629,7 +640,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
629640
break;
630641
}
631642
default:
632-
jj_la1[28] = jj_gen;
643+
jj_la1[29] = jj_gen;
633644
;
634645
}
635646
pat = new NodePattern(r, underNodeNegation, attributes.attributes(), attributes.root(), attributes.empty(), link, name != null ? name.image : null);
@@ -646,13 +657,13 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
646657
public Token jj_nt;
647658
private int jj_ntk;
648659
private int jj_gen;
649-
final private int[] jj_la1 = new int[29];
660+
final private int[] jj_la1 = new int[30];
650661
static private int[] jj_la1_0;
651662
static {
652663
jj_la1_init_0();
653664
}
654665
private static void jj_la1_init_0() {
655-
jj_la1_0 = new int[] {0x400,0x828808,0x3801c,0x3801c,0x828800,0x2000,0x3c01c,0x4000,0x3801c,0x2001c,0x80000,0x10,0x110,0x110,0x100000,0x200000,0x1c,0x828800,0x2000,0x82c000,0x4000,0x828000,0x820000,0x400400,0x110,0xd0,0x1000000,0xd0,0x200000,};
666+
jj_la1_0 = new int[] {0x400,0x1028808,0x3801c,0x3801c,0x1028800,0x2000,0x3c01c,0x4000,0x3801c,0x2001c,0x80000,0x10,0x110,0x110,0x100000,0x200000,0x400000,0x1c,0x1028800,0x2000,0x102c000,0x4000,0x1028000,0x1020000,0x800400,0x110,0xd0,0x2000000,0xd0,0x400000,};
656667
}
657668

658669
/** Constructor with InputStream. */
@@ -666,7 +677,7 @@ public SemgrexParser(java.io.InputStream stream, String encoding) {
666677
token = new Token();
667678
jj_ntk = -1;
668679
jj_gen = 0;
669-
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
680+
for (int i = 0; i < 30; i++) jj_la1[i] = -1;
670681
}
671682

672683
/** Reinitialise. */
@@ -680,7 +691,7 @@ public void ReInit(java.io.InputStream stream, String encoding) {
680691
token = new Token();
681692
jj_ntk = -1;
682693
jj_gen = 0;
683-
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
694+
for (int i = 0; i < 30; i++) jj_la1[i] = -1;
684695
}
685696

686697
/** Constructor. */
@@ -690,7 +701,7 @@ public SemgrexParser(java.io.Reader stream) {
690701
token = new Token();
691702
jj_ntk = -1;
692703
jj_gen = 0;
693-
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
704+
for (int i = 0; i < 30; i++) jj_la1[i] = -1;
694705
}
695706

696707
/** Reinitialise. */
@@ -708,7 +719,7 @@ public void ReInit(java.io.Reader stream) {
708719
token = new Token();
709720
jj_ntk = -1;
710721
jj_gen = 0;
711-
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
722+
for (int i = 0; i < 30; i++) jj_la1[i] = -1;
712723
}
713724

714725
/** Constructor with generated Token Manager. */
@@ -717,7 +728,7 @@ public SemgrexParser(SemgrexParserTokenManager tm) {
717728
token = new Token();
718729
jj_ntk = -1;
719730
jj_gen = 0;
720-
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
731+
for (int i = 0; i < 30; i++) jj_la1[i] = -1;
721732
}
722733

723734
/** Reinitialise. */
@@ -726,7 +737,7 @@ public void ReInit(SemgrexParserTokenManager tm) {
726737
token = new Token();
727738
jj_ntk = -1;
728739
jj_gen = 0;
729-
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
740+
for (int i = 0; i < 30; i++) jj_la1[i] = -1;
730741
}
731742

732743
private Token jj_consume_token(int kind) throws ParseException {
@@ -777,12 +788,12 @@ private int jj_ntk_f() {
777788
/** Generate ParseException. */
778789
public ParseException generateParseException() {
779790
jj_expentries.clear();
780-
boolean[] la1tokens = new boolean[26];
791+
boolean[] la1tokens = new boolean[27];
781792
if (jj_kind >= 0) {
782793
la1tokens[jj_kind] = true;
783794
jj_kind = -1;
784795
}
785-
for (int i = 0; i < 29; i++) {
796+
for (int i = 0; i < 30; i++) {
786797
if (jj_la1[i] == jj_gen) {
787798
for (int j = 0; j < 32; j++) {
788799
if ((jj_la1_0[i] & (1<<j)) != 0) {
@@ -791,7 +802,7 @@ public ParseException generateParseException() {
791802
}
792803
}
793804
}
794-
for (int i = 0; i < 26; i++) {
805+
for (int i = 0; i < 27; i++) {
795806
if (la1tokens[i]) {
796807
jj_expentry = new int[1];
797808
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)