Skip to main content

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}