Skip to main content

croma_core/syntax/
mod.rs

1//! Surface AST for ABC source.
2//!
3//! This module holds the surface syntax tree produced by line classification
4//! and music-line parsing: the tune/line surface structure (`tune`) and the
5//! music-line `*Syntax` types.
6
7pub mod field;
8pub mod lyric;
9pub mod music;
10pub mod tune;
11mod tune_classify;
12
13pub use field::{
14    InlineFieldSyntax, MalformedSyntax, MalformedSyntaxKind, MusicFieldLine, MusicFieldLineKind,
15    PreservedDirectiveSyntax, ScoreDirectiveSyntax, UnsupportedSyntax, UnsupportedSyntaxKind,
16};
17pub use lyric::{
18    LyricLineSyntax, LyricTokenKind, LyricTokenSyntax, SymbolLineSyntax, SymbolTokenKind,
19    SymbolTokenSyntax,
20};
21pub use music::{
22    AccidentalSyntax, AnnotationPlacement, AttachmentBundle, BarlineSyntax, BrokenRhythmDirection,
23    BrokenRhythmSyntax, ChordMemberSyntax, ChordSyntax, DecorationKind, DecorationSyntax,
24    GraceElementSyntax, GraceGroupSyntax, LengthSyntax, MultiMeasureRestSyntax, MusicItem,
25    MusicLine, MusicToken, MusicTokenKind, NoteSyntax, OctaveMark, OctaveMarkSyntax, OverlaySyntax,
26    ParsedMusicDocument, ParsedTuneMusic, PitchSyntax, QuotedTextKind, QuotedTextSyntax,
27    RestSyntax, SlurDirection, SlurSyntax, SpacerSyntax, SpannedNumber, TieSyntax, TupletSyntax,
28    VariantEndingPart, VariantEndingSyntax,
29};
30pub use tune::{
31    ClassifiedLine, ContinuationEdge, ContinuationKind, FieldHeader, LineContext, LineKind,
32    LineMap, NonNoteItem, NonNoteKind, ScoreLineBreak, SourceBlock, SourceBlockKind, SurfaceKind,
33    SurfaceMap, SurfaceToken, TuneBlock, analyze, analyze_source,
34};