77 lines
1.0 KiB
ANTLR

grammar Fstab;
entry
:
WHITESPACE? spec?
WHITESPACE? mountPoint?
WHITESPACE? fileSystem?
WHITESPACE? mountOptions?
WHITESPACE? freq?
WHITESPACE? pass? WHITESPACE?
EOF
;
spec
: QUOTED_STRING | STRING
;
mountPoint
: QUOTED_STRING | STRING
;
fileSystem
: ADFS | AFFS | BTRFS | EXFAT
// Still match unknown file systems
| STRING | QUOTED_STRING
;
mountOptions
: QUOTED_STRING | STRING
;
freq
: DIGITS
;
pass
: DIGITS
;
DIGITS
: [0-9]+
;
WHITESPACE
: [ \t]+
;
HASH
: '#'
;
STRING
: ~(' ' | '\t' | '#')+
;
QUOTED_STRING
: '"' WHITESPACE? (STRING WHITESPACE)* STRING? ('"')?
;
// ///// Supported file systems /////
ADFS
: ('A' | 'a') ('D' | 'd') ('F' | 'f') ('S' | 's')
;
AFFS
: ('A' | 'a') ('F' | 'f') ('F' | 'f') ('S' | 's')
;
BTRFS
: ('B' | 'b') ('T' | 't') ('R' | 'r') ('F' | 'f') ('S' | 's')
;
EXFAT
: ('E' | 'e') ('X' | 'x') ('F' | 'f') ('A' | 'a') ('T' | 't')
;