pddlp/domain/
token.rs

1use logos::Logos;
2
3#[derive(Logos, Debug, PartialEq, Clone)]
4#[logos(skip r"[ \t\r\n\f]+|;.*")]
5pub(super) enum Token<'a> {
6    #[token("(")]
7    LParen,
8
9    #[token(")")]
10    RParen,
11
12    #[regex("(?i)define")]
13    Definition,
14
15    #[regex("(?i)domain")]
16    DomainName,
17
18    #[regex(":(?i)requirements")]
19    Requirements,
20
21    #[regex(":[a-zA-Z][a-zA-Z0-9-_]*")]
22    Requirement(&'a str),
23
24    #[regex(":(?i)types")]
25    Types,
26
27    #[regex(":(?i)predicates")]
28    Predicates,
29
30    #[regex(":(?i)action")]
31    Action,
32
33    #[regex(":(?i)parameters")]
34    Parameters,
35
36    #[regex(":(?i)precondition")]
37    Precondition,
38
39    #[regex(":(?i)effect")]
40    Effect,
41
42    #[regex(":(?i)init")]
43    Init,
44
45    #[regex("=")]
46    Equal,
47
48    #[regex("(?i)and")]
49    And,
50
51    #[regex("(?i)or")]
52    Or,
53
54    #[regex("(?i)not")]
55    Not,
56
57    #[token("-")]
58    TypeSeparator,
59
60    #[regex("[a-zA-Z?][a-zA-Z0-9-_]*")]
61    Name(&'a str),
62}