pub enum Rule {
Show 18 variants
WHITESPACE,
digit,
year,
month,
day,
date,
blockchain_name,
currency,
number,
number_and_currency,
entry,
name,
date_entry,
open,
close,
high,
low,
volume,
}Expand description
Grammar rules
Variants§
WHITESPACE
Matches whitespace characters including space, tab, and newline. This rule is used to ignore these characters in parsing, making the grammar more readable and flexible by disregarding non-essential spaces.
digit
Represents a single ASCII digit from 0 to 9. This rule allows us to match numeric characters in other rules where digits are required.
year
Matches a 4-digit year, e.g., “2024”. Used in date formats to specify the year component.
month
Matches a 2-digit month, e.g., “05” for May. Used in date formats to specify the month component.
day
Matches a 2-digit day, e.g., “12” for the 12th day of a month. Used in date formats to specify the day component.
date
Matches two date formats: “dd.mm.yyyy” or “mm/dd/yyyy”. Supports both European and American date formats for flexibility. Combines day, month, and year components separated by specific delimiters.
blockchain_name
Recognizes specific blockchain names: “SOL”, “BTC”, or “ETH”. This rule is used to identify and validate different blockchain types.
currency
Matches a specific set of currency codes: “USD”, “EUR”, or “UAH”. Used in financial fields to denote the currency associated with a numeric value.
number
Represents a formatted numeric value with optional commas for thousands separation and an optional decimal part. Examples include “1,000.50” or “200,200,200”. Allows flexibility in representing numeric data in financial contexts.
number_and_currency
Matches a number followed by a currency. Specifies the format for fields that require both a numeric amount and currency type.
entry
Defines the structure of an entire entry, combining all components in a specific format. An entry consists of name, date, open, close, high, low, and volume fields. Ensures consistency and proper format across all entries.
name
Matches a line that includes the blockchain name, formatted as “Name: <blockchain_name>;”. Ensures consistency in the format and captures the type of blockchain being referenced.
date_entry
Matches a line containing the date, formatted as “Date:
open
Matches the opening price line in the format “Open: <number_and_currency>;”. Specifies the format for the open price field in each entry.
close
Matches the closing price line in the format “Close: <number_and_currency>;”. Specifies the format for the close price field in each entry.
high
Matches the high price line in the format “High: <number_and_currency>;”. Specifies the format for the high price field in each entry.
low
Matches the low price line in the format “Low: <number_and_currency>;”. Specifies the format for the low price field in each entry.
volume
Matches the volume line in the format “Volume: <number_and_currency>;”. Specifies the format for the volume field, indicating the traded volume in a particular currency.