Skip to content

Commit 5a82c17

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

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(), link, name != null ? name.image : null);
@@ -629,13 +640,13 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
629640
public Token jj_nt;
630641
private int jj_ntk;
631642
private int jj_gen;
632-
final private int[] jj_la1 = new int[28];
643+
final private int[] jj_la1 = new int[29];
633644
static private int[] jj_la1_0;
634645
static {
635646
jj_la1_init_0();
636647
}
637648
private static void jj_la1_init_0() {
638-
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,};
649+
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,};
639650
}
640651

641652
/** Constructor with InputStream. */
@@ -649,7 +660,7 @@ public SemgrexParser(java.io.InputStream stream, String encoding) {
649660
token = new Token();
650661
jj_ntk = -1;
651662
jj_gen = 0;
652-
for (int i = 0; i < 28; i++) jj_la1[i] = -1;
663+
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
653664
}
654665

655666
/** Reinitialise. */
@@ -663,7 +674,7 @@ public void ReInit(java.io.InputStream stream, String encoding) {
663674
token = new Token();
664675
jj_ntk = -1;
665676
jj_gen = 0;
666-
for (int i = 0; i < 28; i++) jj_la1[i] = -1;
677+
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
667678
}
668679

669680
/** Constructor. */
@@ -673,7 +684,7 @@ public SemgrexParser(java.io.Reader stream) {
673684
token = new Token();
674685
jj_ntk = -1;
675686
jj_gen = 0;
676-
for (int i = 0; i < 28; i++) jj_la1[i] = -1;
687+
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
677688
}
678689

679690
/** Reinitialise. */
@@ -691,7 +702,7 @@ public void ReInit(java.io.Reader stream) {
691702
token = new Token();
692703
jj_ntk = -1;
693704
jj_gen = 0;
694-
for (int i = 0; i < 28; i++) jj_la1[i] = -1;
705+
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
695706
}
696707

697708
/** Constructor with generated Token Manager. */
@@ -700,7 +711,7 @@ public SemgrexParser(SemgrexParserTokenManager tm) {
700711
token = new Token();
701712
jj_ntk = -1;
702713
jj_gen = 0;
703-
for (int i = 0; i < 28; i++) jj_la1[i] = -1;
714+
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
704715
}
705716

706717
/** Reinitialise. */
@@ -709,7 +720,7 @@ public void ReInit(SemgrexParserTokenManager tm) {
709720
token = new Token();
710721
jj_ntk = -1;
711722
jj_gen = 0;
712-
for (int i = 0; i < 28; i++) jj_la1[i] = -1;
723+
for (int i = 0; i < 29; i++) jj_la1[i] = -1;
713724
}
714725

715726
private Token jj_consume_token(int kind) throws ParseException {
@@ -760,12 +771,12 @@ private int jj_ntk_f() {
760771
/** Generate ParseException. */
761772
public ParseException generateParseException() {
762773
jj_expentries.clear();
763-
boolean[] la1tokens = new boolean[25];
774+
boolean[] la1tokens = new boolean[26];
764775
if (jj_kind >= 0) {
765776
la1tokens[jj_kind] = true;
766777
jj_kind = -1;
767778
}
768-
for (int i = 0; i < 28; i++) {
779+
for (int i = 0; i < 29; i++) {
769780
if (jj_la1[i] == jj_gen) {
770781
for (int j = 0; j < 32; j++) {
771782
if ((jj_la1_0[i] & (1<<j)) != 0) {
@@ -774,7 +785,7 @@ public ParseException generateParseException() {
774785
}
775786
}
776787
}
777-
for (int i = 0; i < 25; i++) {
788+
for (int i = 0; i < 26; i++) {
778789
if (la1tokens[i]) {
779790
jj_expentry = new int[1];
780791
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)