#![allow(clippy::tabs_in_doc_comments)] #![deny(missing_docs)]
mod ast;
mod lex;
mod lossless;
mod parse;
mod pattern;
pub use ast::makefile::MakefileItem;
pub use ast::rule::RuleItem;
pub use lossless::{
ArchiveMember, ArchiveMembers, Conditional, Error, Identifier, Include, Lang, Makefile,
ParseError, Rule, VariableDefinition,
};
pub use parse::Parse;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum MakefileVariant {
GNUMake,
BSDMake,
NMake,
POSIXMake,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[allow(non_camel_case_types)]
#[repr(u16)]
#[allow(missing_docs)]
pub enum SyntaxKind {
IDENTIFIER = 0,
INDENT,
TEXT,
WHITESPACE,
NEWLINE,
DOLLAR,
LPAREN,
RPAREN,
QUOTE,
BACKSLASH,
COMMA,
OPERATOR,
COMMENT,
ERROR,
ROOT, RULE, RECIPE, VARIABLE, EXPR, TARGETS, PREREQUISITES, PREREQUISITE,
CONDITIONAL, CONDITIONAL_IF, CONDITIONAL_ELSE, CONDITIONAL_ENDIF, INCLUDE,
ARCHIVE_MEMBERS, ARCHIVE_MEMBER,
BLANK_LINE, }
impl From<SyntaxKind> for rowan::SyntaxKind {
fn from(kind: SyntaxKind) -> Self {
Self(kind as u16)
}
}