@@ -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 );
7070children .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 :
@@ -397,7 +397,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
397397 switch ((jj_ntk ==-1 )?jj_ntk_f ():jj_ntk ) {
398398 case 15 :
399399 case 17 :
400- case 23 :{
400+ case 24 :{
401401 node = ModNode (reln );
402402 break ;
403403 }
@@ -454,7 +454,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
454454 case 14 :
455455 case 15 :
456456 case 17 :
457- case 23 :{
457+ case 24 :{
458458 ;
459459 break ;
460460 }
@@ -485,7 +485,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
485485 boolean startUnderNeg ;
486486 switch ((jj_ntk ==-1 )?jj_ntk_f ():jj_ntk ) {
487487 case 17 :
488- case 23 :{
488+ case 24 :{
489489 child = Child (r );
490490 break ;
491491 }
@@ -512,7 +512,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
512512 child = NodeDisj (r );
513513 break ;
514514 }
515- case 23 :{
515+ case 24 :{
516516 child = Description (r );
517517 break ;
518518 }
@@ -569,8 +569,22 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
569569 }
570570 break ;
571571 }
572- case ALIGNRELN :{
573- attrType = jj_consume_token (ALIGNRELN );
572+ case ALIGNRELN :
573+ case 23 :{
574+ switch ((jj_ntk ==-1 )?jj_ntk_f ():jj_ntk ) {
575+ case ALIGNRELN :{
576+ attrType = jj_consume_token (ALIGNRELN );
577+ break ;
578+ }
579+ case 23 :{
580+ attrType = jj_consume_token (23 );
581+ break ;
582+ }
583+ default :
584+ jj_la1 [25 ] = jj_gen ;
585+ jj_consume_token (-1 );
586+ throw new ParseException ();
587+ }
574588 key = jj_consume_token (IDENTIFIER );
575589 jj_consume_token (21 );
576590 switch ((jj_ntk ==-1 )?jj_ntk_f ():jj_ntk ) {
@@ -583,19 +597,20 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
583597 break ;
584598 }
585599 default :
586- jj_la1 [25 ] = jj_gen ;
600+ jj_la1 [26 ] = jj_gen ;
587601 jj_consume_token (-1 );
588602 throw new ParseException ();
589603 }
590604if (attr == null || key == null || value == null ) {
591605 {if (true ) throw new SemgrexParseException ("null while parsing semgrex expression: attr=" + attr +
592606 " key=" + key + " value=" + value );}
593607 }
594- attributes .addContains (attr .image , key .image , value .image );
608+ boolean negated = attrType .image .equals ("!@" );
609+ attributes .addContains (attr .image , key .image , value .image , negated );
595610 break ;
596611 }
597612 default :
598- jj_la1 [26 ] = jj_gen ;
613+ jj_la1 [27 ] = jj_gen ;
599614 jj_consume_token (-1 );
600615 throw new ParseException ();
601616 }
@@ -612,7 +627,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
612627 break ;
613628 }
614629 default :
615- jj_la1 [27 ] = jj_gen ;
630+ jj_la1 [28 ] = jj_gen ;
616631 jj_consume_token (-1 );
617632 throw new ParseException ();
618633 }
@@ -622,7 +637,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
622637 boolean link = false ;
623638 NodeAttributes attributes = new NodeAttributes ();
624639 NodePattern pat ;
625- jj_consume_token (23 );
640+ jj_consume_token (24 );
626641 switch ((jj_ntk ==-1 )?jj_ntk_f ():jj_ntk ) {
627642 case IDENTIFIER :
628643 case EMPTY :
@@ -631,24 +646,24 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
631646 label_6 :
632647 while (true ) {
633648 switch ((jj_ntk ==-1 )?jj_ntk_f ():jj_ntk ) {
634- case 24 :{
649+ case 25 :{
635650 ;
636651 break ;
637652 }
638653 default :
639- jj_la1 [28 ] = jj_gen ;
654+ jj_la1 [29 ] = jj_gen ;
640655 break label_6 ;
641656 }
642- jj_consume_token (24 );
657+ jj_consume_token (25 );
643658 AddAttribute (attributes );
644659 }
645660 break ;
646661 }
647662 default :
648- jj_la1 [29 ] = jj_gen ;
663+ jj_la1 [30 ] = jj_gen ;
649664 ;
650665 }
651- jj_consume_token (25 );
666+ jj_consume_token (26 );
652667 switch ((jj_ntk ==-1 )?jj_ntk_f ():jj_ntk ) {
653668 case 21 :{
654669 jj_consume_token (21 );
@@ -665,7 +680,7 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
665680 break ;
666681 }
667682 default :
668- jj_la1 [30 ] = jj_gen ;
683+ jj_la1 [31 ] = jj_gen ;
669684 ;
670685 }
671686pat = new NodePattern (r , underNodeNegation , attributes , link , name != null ? name .image : null );
@@ -682,13 +697,13 @@ final public SemgrexPattern Root() throws ParseException {// Root pattern for th
682697 public Token jj_nt ;
683698 private int jj_ntk ;
684699 private int jj_gen ;
685- final private int [] jj_la1 = new int [31 ];
700+ final private int [] jj_la1 = new int [32 ];
686701 static private int [] jj_la1_0 ;
687702 static {
688703 jj_la1_init_0 ();
689704 }
690705 private static void jj_la1_init_0 () {
691- 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 ,0x110 ,0x400408 ,0xd0 ,0x1000000 ,0xd0 ,0x200000 ,};
706+ jj_la1_0 = new int [] {0x400 ,0x1028808 ,0x3801c ,0x3801c ,0x1028800 ,0x2000 ,0x3c01c ,0x4000 ,0x3801c ,0x2001c ,0x80000 ,0x10 ,0x110 ,0x110 ,0x100000 ,0x200000 ,0x1c ,0x1028800 ,0x2000 ,0x102c000 ,0x4000 ,0x1028000 , 0x1020000 ,0x400400 ,0x110 ,0x800008 , 0x110 ,0xc00408 ,0xd0 ,0x2000000 ,0xd0 ,0x200000 ,};
692707 }
693708
694709 /** Constructor with InputStream. */
@@ -702,7 +717,7 @@ public SemgrexParser(java.io.InputStream stream, String encoding) {
702717 token = new Token ();
703718 jj_ntk = -1 ;
704719 jj_gen = 0 ;
705- for (int i = 0 ; i < 31 ; i ++) jj_la1 [i ] = -1 ;
720+ for (int i = 0 ; i < 32 ; i ++) jj_la1 [i ] = -1 ;
706721 }
707722
708723 /** Reinitialise. */
@@ -716,7 +731,7 @@ public void ReInit(java.io.InputStream stream, String encoding) {
716731 token = new Token ();
717732 jj_ntk = -1 ;
718733 jj_gen = 0 ;
719- for (int i = 0 ; i < 31 ; i ++) jj_la1 [i ] = -1 ;
734+ for (int i = 0 ; i < 32 ; i ++) jj_la1 [i ] = -1 ;
720735 }
721736
722737 /** Constructor. */
@@ -726,7 +741,7 @@ public SemgrexParser(java.io.Reader stream) {
726741 token = new Token ();
727742 jj_ntk = -1 ;
728743 jj_gen = 0 ;
729- for (int i = 0 ; i < 31 ; i ++) jj_la1 [i ] = -1 ;
744+ for (int i = 0 ; i < 32 ; i ++) jj_la1 [i ] = -1 ;
730745 }
731746
732747 /** Reinitialise. */
@@ -744,7 +759,7 @@ public void ReInit(java.io.Reader stream) {
744759 token = new Token ();
745760 jj_ntk = -1 ;
746761 jj_gen = 0 ;
747- for (int i = 0 ; i < 31 ; i ++) jj_la1 [i ] = -1 ;
762+ for (int i = 0 ; i < 32 ; i ++) jj_la1 [i ] = -1 ;
748763 }
749764
750765 /** Constructor with generated Token Manager. */
@@ -753,7 +768,7 @@ public SemgrexParser(SemgrexParserTokenManager tm) {
753768 token = new Token ();
754769 jj_ntk = -1 ;
755770 jj_gen = 0 ;
756- for (int i = 0 ; i < 31 ; i ++) jj_la1 [i ] = -1 ;
771+ for (int i = 0 ; i < 32 ; i ++) jj_la1 [i ] = -1 ;
757772 }
758773
759774 /** Reinitialise. */
@@ -762,7 +777,7 @@ public void ReInit(SemgrexParserTokenManager tm) {
762777 token = new Token ();
763778 jj_ntk = -1 ;
764779 jj_gen = 0 ;
765- for (int i = 0 ; i < 31 ; i ++) jj_la1 [i ] = -1 ;
780+ for (int i = 0 ; i < 32 ; i ++) jj_la1 [i ] = -1 ;
766781 }
767782
768783 private Token jj_consume_token (int kind ) throws ParseException {
@@ -813,12 +828,12 @@ private int jj_ntk_f() {
813828 /** Generate ParseException. */
814829 public ParseException generateParseException () {
815830 jj_expentries .clear ();
816- boolean [] la1tokens = new boolean [26 ];
831+ boolean [] la1tokens = new boolean [27 ];
817832 if (jj_kind >= 0 ) {
818833 la1tokens [jj_kind ] = true ;
819834 jj_kind = -1 ;
820835 }
821- for (int i = 0 ; i < 31 ; i ++) {
836+ for (int i = 0 ; i < 32 ; i ++) {
822837 if (jj_la1 [i ] == jj_gen ) {
823838 for (int j = 0 ; j < 32 ; j ++) {
824839 if ((jj_la1_0 [i ] & (1 <<j )) != 0 ) {
@@ -827,7 +842,7 @@ public ParseException generateParseException() {
827842 }
828843 }
829844 }
830- for (int i = 0 ; i < 26 ; i ++) {
845+ for (int i = 0 ; i < 27 ; i ++) {
831846 if (la1tokens [i ]) {
832847 jj_expentry = new int [1 ];
833848 jj_expentry [0 ] = i ;
0 commit comments