| 1 | -- Abstract representation of a 'find' expression.
 | 
| 2 | 
 | 
| 3 | module find
 | 
| 4 | {
 | 
| 5 |   expr =
 | 
| 6 |     Concatenation(expr* exprs)
 | 
| 7 |   | Disjunction(expr* exprs)
 | 
| 8 |   | Conjunction(expr* exprs)
 | 
| 9 |   | Negation(expr expr)
 | 
| 10 | 
 | 
| 11 |   | True_
 | 
| 12 |   | False_
 | 
| 13 | 
 | 
| 14 |   | PathTest(pathAccessor a, predicate p)
 | 
| 15 |   | StatTest(statAccessor a, predicate p)
 | 
| 16 | 
 | 
| 17 |   | DeleteAction
 | 
| 18 |   | PruneAction
 | 
| 19 |   | QuitAction
 | 
| 20 |   | PrintAction(string? file, string? format)
 | 
| 21 |   | LsAction(string? file)
 | 
| 22 |   | ExecAction(bool batch, bool dir, bool ok, string* argv)
 | 
| 23 | 
 | 
| 24 |   pathAccessor =
 | 
| 25 |     FullPath
 | 
| 26 |   | Filename
 | 
| 27 | 
 | 
| 28 |   statAccessor =
 | 
| 29 |     AccessTime
 | 
| 30 |   | CreationTime
 | 
| 31 |   | ModificationTime
 | 
| 32 |   | Filesystem
 | 
| 33 |   | Inode
 | 
| 34 |   | LinkCount
 | 
| 35 |   | Mode
 | 
| 36 |   | Filetype
 | 
| 37 |   | Uid
 | 
| 38 |   | Gid
 | 
| 39 |   | Username
 | 
| 40 |   | Groupname
 | 
| 41 |   | Size
 | 
| 42 | 
 | 
| 43 |   predicate =
 | 
| 44 |     EQ(int n)
 | 
| 45 |   | GE(int n)
 | 
| 46 |   | LE(int n)
 | 
| 47 |   | StringMatch(string str, bool ignoreCase)
 | 
| 48 |   | GlobMatch(string glob, bool ignoreCase)
 | 
| 49 |   | RegexMatch(string re, bool ignoreCase)
 | 
| 50 |   | Readable
 | 
| 51 |   | Writable
 | 
| 52 |   | Executable
 | 
| 53 | }
 |