@@ -18,7 +18,6 @@ use util::interner;
1818
1919use core:: cast;
2020use core:: char;
21- use core:: cmp;
2221use core:: str;
2322use core:: task;
2423use std:: oldmap:: HashMap ;
@@ -41,6 +40,7 @@ pub enum binop {
4140
4241#[ auto_encode]
4342#[ auto_decode]
43+ #[ deriving_eq]
4444pub enum Token {
4545 /* Expression-operator symbols. */
4646 EQ ,
@@ -103,6 +103,7 @@ pub enum Token {
103103
104104#[ auto_encode]
105105#[ auto_decode]
106+ #[ deriving_eq]
106107/// For interpolation during macro expansion.
107108pub enum nonterminal {
108109 nt_item( @ast:: item ) ,
@@ -522,278 +523,6 @@ pub fn reserved_keyword_table() -> HashMap<~str, ()> {
522523}
523524
524525
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-
797526// Local Variables:
798527// fill-column: 78;
799528// indent-tabs-mode: nil
0 commit comments