veripb_parser/assignment_token.rs
1//! Tokenizer for VeriPB assignments.
2
3use logos::Logos;
4
5/// VeriPB assignment token.
6///
7/// A token in an assignment is either a positive variable or a negative variable.
8#[derive(Debug, Logos, PartialEq, Eq)]
9#[logos(skip r"[ \t\r\n]")]
10pub enum AssignmentToken {
11 /// Positive literal in OPB format.
12 #[regex("[a-zA-Z_][_a-zA-Z0-9\\-\\^\\[\\]\\{\\}]+")]
13 PositiveVar,
14
15 /// Negative literal in OPB format.
16 #[regex("~[a-zA-Z_][_a-zA-Z0-9\\-\\^\\[\\]\\{\\}]+")]
17 NegativeVar,
18}