@@ -18,7 +18,6 @@ use util::interner;
18
18
19
19
use core:: cast;
20
20
use core:: char;
21
- use core:: cmp;
22
21
use core:: str;
23
22
use core:: task;
24
23
use std:: oldmap:: HashMap ;
@@ -41,6 +40,7 @@ pub enum binop {
41
40
42
41
#[ auto_encode]
43
42
#[ auto_decode]
43
+ #[ deriving_eq]
44
44
pub enum Token {
45
45
/* Expression-operator symbols. */
46
46
EQ ,
@@ -103,6 +103,7 @@ pub enum Token {
103
103
104
104
#[ auto_encode]
105
105
#[ auto_decode]
106
+ #[ deriving_eq]
106
107
/// For interpolation during macro expansion.
107
108
pub enum nonterminal {
108
109
nt_item( @ast:: item ) ,
@@ -522,278 +523,6 @@ pub fn reserved_keyword_table() -> HashMap<~str, ()> {
522
523
}
523
524
524
525
525
- impl cmp:: Eq for Token {
526
- pure fn eq( & self , other: & Token ) -> bool {
527
- match ( * self ) {
528
- EQ => {
529
- match ( * other) {
530
- EQ => true ,
531
- _ => false
532
- }
533
- }
534
- LT => {
535
- match ( * other) {
536
- LT => true ,
537
- _ => false
538
- }
539
- }
540
- LE => {
541
- match ( * other) {
542
- LE => true ,
543
- _ => false
544
- }
545
- }
546
- EQEQ => {
547
- match ( * other) {
548
- EQEQ => true ,
549
- _ => false
550
- }
551
- }
552
- NE => {
553
- match ( * other) {
554
- NE => true ,
555
- _ => false
556
- }
557
- }
558
- GE => {
559
- match ( * other) {
560
- GE => true ,
561
- _ => false
562
- }
563
- }
564
- GT => {
565
- match ( * other) {
566
- GT => true ,
567
- _ => false
568
- }
569
- }
570
- ANDAND => {
571
- match ( * other) {
572
- ANDAND => true ,
573
- _ => false
574
- }
575
- }
576
- OROR => {
577
- match ( * other) {
578
- OROR => true ,
579
- _ => false
580
- }
581
- }
582
- NOT => {
583
- match ( * other) {
584
- NOT => true ,
585
- _ => false
586
- }
587
- }
588
- TILDE => {
589
- match ( * other) {
590
- TILDE => true ,
591
- _ => false
592
- }
593
- }
594
- BINOP ( e0a) => {
595
- match ( * other) {
596
- BINOP ( e0b) => e0a == e0b,
597
- _ => false
598
- }
599
- }
600
- BINOPEQ ( e0a) => {
601
- match ( * other) {
602
- BINOPEQ ( e0b) => e0a == e0b,
603
- _ => false
604
- }
605
- }
606
- AT => {
607
- match ( * other) {
608
- AT => true ,
609
- _ => false
610
- }
611
- }
612
- DOT => {
613
- match ( * other) {
614
- DOT => true ,
615
- _ => false
616
- }
617
- }
618
- DOTDOT => {
619
- match ( * other) {
620
- DOTDOT => true ,
621
- _ => false
622
- }
623
- }
624
- COMMA => {
625
- match ( * other) {
626
- COMMA => true ,
627
- _ => false
628
- }
629
- }
630
- SEMI => {
631
- match ( * other) {
632
- SEMI => true ,
633
- _ => false
634
- }
635
- }
636
- COLON => {
637
- match ( * other) {
638
- COLON => true ,
639
- _ => false
640
- }
641
- }
642
- MOD_SEP => {
643
- match ( * other) {
644
- MOD_SEP => true ,
645
- _ => false
646
- }
647
- }
648
- RARROW => {
649
- match ( * other) {
650
- RARROW => true ,
651
- _ => false
652
- }
653
- }
654
- LARROW => {
655
- match ( * other) {
656
- LARROW => true ,
657
- _ => false
658
- }
659
- }
660
- DARROW => {
661
- match ( * other) {
662
- DARROW => true ,
663
- _ => false
664
- }
665
- }
666
- FAT_ARROW => {
667
- match ( * other) {
668
- FAT_ARROW => true ,
669
- _ => false
670
- }
671
- }
672
- LPAREN => {
673
- match ( * other) {
674
- LPAREN => true ,
675
- _ => false
676
- }
677
- }
678
- RPAREN => {
679
- match ( * other) {
680
- RPAREN => true ,
681
- _ => false
682
- }
683
- }
684
- LBRACKET => {
685
- match ( * other) {
686
- LBRACKET => true ,
687
- _ => false
688
- }
689
- }
690
- RBRACKET => {
691
- match ( * other) {
692
- RBRACKET => true ,
693
- _ => false
694
- }
695
- }
696
- LBRACE => {
697
- match ( * other) {
698
- LBRACE => true ,
699
- _ => false
700
- }
701
- }
702
- RBRACE => {
703
- match ( * other) {
704
- RBRACE => true ,
705
- _ => false
706
- }
707
- }
708
- POUND => {
709
- match ( * other) {
710
- POUND => true ,
711
- _ => false
712
- }
713
- }
714
- DOLLAR => {
715
- match ( * other) {
716
- DOLLAR => true ,
717
- _ => false
718
- }
719
- }
720
- LIT_INT ( e0a, e1a) => {
721
- match ( * other) {
722
- LIT_INT ( e0b, e1b) => e0a == e0b && e1a == e1b,
723
- _ => false
724
- }
725
- }
726
- LIT_UINT ( e0a, e1a) => {
727
- match ( * other) {
728
- LIT_UINT ( e0b, e1b) => e0a == e0b && e1a == e1b,
729
- _ => false
730
- }
731
- }
732
- LIT_INT_UNSUFFIXED ( e0a) => {
733
- match ( * other) {
734
- LIT_INT_UNSUFFIXED ( e0b) => e0a == e0b,
735
- _ => false
736
- }
737
- }
738
- LIT_FLOAT ( e0a, e1a) => {
739
- match ( * other) {
740
- LIT_FLOAT ( e0b, e1b) => e0a == e0b && e1a == e1b,
741
- _ => false
742
- }
743
- }
744
- LIT_FLOAT_UNSUFFIXED ( e0a) => {
745
- match ( * other) {
746
- LIT_FLOAT_UNSUFFIXED ( e0b) => e0a == e0b,
747
- _ => false
748
- }
749
- }
750
- LIT_STR ( e0a) => {
751
- match ( * other) {
752
- LIT_STR ( e0b) => e0a == e0b,
753
- _ => false
754
- }
755
- }
756
- IDENT ( e0a, e1a) => {
757
- match ( * other) {
758
- IDENT ( e0b, e1b) => e0a == e0b && e1a == e1b,
759
- _ => false
760
- }
761
- }
762
- LIFETIME ( e0a) => {
763
- match ( * other) {
764
- LIFETIME ( e0b) => e0a == e0b,
765
- _ => false
766
- }
767
- }
768
- UNDERSCORE => {
769
- match ( * other) {
770
- UNDERSCORE => true ,
771
- _ => false
772
- }
773
- }
774
- INTERPOLATED ( _) => {
775
- match ( * other) {
776
- INTERPOLATED ( _) => true ,
777
- _ => false
778
- }
779
- }
780
- DOC_COMMENT ( e0a) => {
781
- match ( * other) {
782
- DOC_COMMENT ( e0b) => e0a == e0b,
783
- _ => false
784
- }
785
- }
786
- EOF => {
787
- match ( * other) {
788
- EOF => true ,
789
- _ => false
790
- }
791
- }
792
- }
793
- }
794
- pure fn ne( & self , other: & Token ) -> bool { !( * self ) . eq( other) }
795
- }
796
-
797
526
// Local Variables:
798
527
// fill-column: 78;
799
528
// indent-tabs-mode: nil
0 commit comments