A grammar for that would look like this:
parse
  :  line* EOF   
  ;
line
  :  ( comment | values ) ( NL | EOF )
  ;
comment
  :  ELEMENT+
  ;
values
  :  PIPE ( ELEMENT PIPE )+
  ;
PIPE
  :  '|'    
  ;
ELEMENT
  :  ('a'..'z')+
  ;
NL
  :  '\r'? '\n' |  '\r' 
  ;
WS
  :  (' '|'\t') {$channel=HIDDEN;} 
  ;
And to test it, you just need to sprinkle a bit of code in your grammar like this:
grammar Route;
@members {
  List<List<String>> values = new ArrayList<List<String>>();
}
parse
  :  line* EOF   
  ;
line
  :  ( comment | v=values {values.add($v.line);} ) ( NL | EOF )
  ;
comment
  :  ELEMENT+
  ;
values returns [List<String> line]
@init {line = new ArrayList<String>();}
  :  PIPE ( e=ELEMENT {line.add($e.text);} PIPE )*
  ;
PIPE
  :  '|'    
  ;
ELEMENT
  :  ('a'..'z')+
  ;
NL
  :  '\r'? '\n' |  '\r' 
  ;
WS
  :  (' '|'\t') {$channel=HIDDEN;} 
  ;
Now generate a lexer/parser by invoking:
java -cp antlr-3.2.jar org.antlr.Tool Route.g
create a class RouteTest.java:
import org.antlr.runtime.*;
import java.util.List;
public class RouteTest {
  public static void main(String[] args) throws Exception {
    String data = 
        "a comment\n"+
        "| xxxxx | y |     zzz   |\n"+
        "another comment\n"+
        "| a | abc | b | def |";
    ANTLRStringStream in = new ANTLRStringStream(data);
    RouteLexer lexer = new RouteLexer(in);
    CommonTokenStream tokens = new CommonTokenStream(lexer);
    RouteParser parser = new RouteParser(tokens);
    parser.parse();
    for(List<String> line : parser.values) {
      System.out.println(line);
    }
  }
}
Compile all source files:
javac -cp antlr-3.2.jar *.java
and run the class RouteTest:
// Windows
java -cp .;antlr-3.2.jar RouteTest
// *nix/MacOS
java -cp .:antlr-3.2.jar RouteTest
If all goes well, you see this printed to your console:
[xxxxx, y, zzz]
[a, abc, b, def]
Edit: note that I simplified it a bit by only allowing lower case letters, you can always expand the set of course.