sysml_v2_parser/ast/
common.rs1use crate::ast::core::{Expression, Node, Span};
2
3#[derive(Debug, Clone, PartialEq, Eq)]
5pub struct FilterMember {
6 pub visibility: Option<Visibility>,
7 pub condition: Node<Expression>,
8}
9
10#[derive(Debug, Clone, PartialEq, Eq)]
12pub struct ParseErrorNode {
13 pub message: String,
14 pub code: String,
15 pub expected: Option<String>,
16 pub found: Option<String>,
17 pub suggestion: Option<String>,
18 pub category: Option<crate::error::DiagnosticCategory>,
19}
20#[derive(Debug, Clone, PartialEq, Eq)]
23pub struct Identification {
24 pub short_name: Option<String>,
26 pub name: Option<String>,
28}
29
30#[derive(Debug, Clone, Copy, PartialEq, Eq)]
32pub enum Visibility {
33 Public,
34 Private,
35 Protected,
36}
37
38#[derive(Debug, Clone, PartialEq, Eq)]
40pub struct FilterPackageMember {
41 pub expression: Node<Expression>,
42}
43
44#[derive(Debug, Clone, PartialEq, Eq)]
46pub struct Import {
47 pub visibility: Option<Visibility>,
48 pub is_import_all: bool,
50 pub target: String,
52 pub is_recursive: bool,
54 pub filter_members: Option<Vec<Node<FilterPackageMember>>>,
56}
57#[derive(Debug, Clone, PartialEq, Eq)]
59pub struct DocComment {
60 pub identification: Option<Identification>,
62 pub locale: Option<String>,
64 pub text: String,
66}
67
68#[derive(Debug, Clone, PartialEq, Eq)]
70pub struct CommentAnnotation {
71 pub identification: Option<Identification>,
72 pub locale: Option<String>,
73 pub text: String,
74}
75
76#[derive(Debug, Clone, PartialEq, Eq)]
78pub struct TextualRepresentation {
79 pub rep_identification: Option<Identification>,
80 pub language: String,
81 pub language_span: Option<Span>,
82 pub text: String,
83}
84#[derive(Debug, Clone, PartialEq, Eq)]
86pub enum ConnectBody {
87 Semicolon,
88 Brace,
89}