use crate::ast::core::{Expression, Node, Span};
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct FilterMember {
pub visibility: Option<Visibility>,
pub condition: Node<Expression>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct ParseErrorNode {
pub message: String,
pub code: String,
pub expected: Option<String>,
pub found: Option<String>,
pub suggestion: Option<String>,
pub category: Option<crate::error::DiagnosticCategory>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Identification {
pub short_name: Option<String>,
pub name: Option<String>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Visibility {
Public,
Private,
Protected,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct FilterPackageMember {
pub expression: Node<Expression>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Import {
pub visibility: Option<Visibility>,
pub is_import_all: bool,
pub target: String,
pub is_recursive: bool,
pub filter_members: Option<Vec<Node<FilterPackageMember>>>,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct DocComment {
pub identification: Option<Identification>,
pub locale: Option<String>,
pub text: String,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct CommentAnnotation {
pub identification: Option<Identification>,
pub locale: Option<String>,
pub text: String,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct TextualRepresentation {
pub rep_identification: Option<Identification>,
pub language: String,
pub language_span: Option<Span>,
pub text: String,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ConnectBody {
Semicolon,
Brace,
}