# Symbols cbracket = "{|}" symbol = "(|)|~|^|_" dynamic = '\\(<|>|!|f{1,5}|p{1,5}|m(f|p)|fp|(r|s)fz|s(f|p){1,2})(?!\w)' string delim "\"" "\"" # Scheme scheme_block delim "#'((" "))" multiline scheme delim '#(\'|\()' '\)|$' # single line only # Comments comment delim "%{" "%}" multiline nested comment start "%" # Numbers specialchar = '(?])(1|2|4|8|16|32|64|128)(\.+|\b)' value = '\d+' # Markup commands markup_command = '\\(bold|box|center-column|hspace|italic|line|justified-line', 'markup(list)?|\musicglyph|normal-text|override-lines', 'small(er)?|table-of-contents|teeny|vspace|with-(url|color)', 'wordwrap(-lines)?)' lyric_command = '\\(lyricmode|lyrics(to)?)' # Commands preproc = '\\(book(part)?|context|consists|header|include|language|layout', 'midi|once|override(Property)?|paper|remove(WithTag)?', 'revert|score|(un)?set|version|with)\b' # Attributes of music functions attribute = '(alto|baritone|bass|french|mezzosoprano|percussion', 'soprano|subbass|tenor|treble|varbaritone', 'percent|tremolo|unfold|volta', '\\(aeolian|dorian|ionian|lydian|locrian|minor|major|mixolydian|phrygian))\b' header_variables = 'arranger', 'breakbefore', 'composer', 'copyright', 'date', 'dedication', 'enteredby', 'filename', 'footer', 'instrument\b', 'lastupdated', 'maintainer(Email|Web)?', 'meter', 'moreInfo', 'mutopia(composer|instrument|opus|poet|title)?', 'opus', 'poet', 'piece', 'source(url)?', 'style', '(sub){0,2}title', 'tagline', 'texidoc' # Contexts: regexp is too hungry, a list is better # old regexp: '([A-Z][a-z]+){2,}' context = '\\?(ChoirStaff|ChordNames|CueVoice|Devnull|Drum(Staff|Voice)', 'Dynamics|FiguredBass|FretBoards|Global|GrandStaff', 'GregorianTranscription(Staff|Voice)|Lyrics|Mensural(Staff|Voice)', 'NoteNames|PianoStaff|RhythmicStaff|Score|Staff(Group)?', 'Tab(Staff|Voice)|Vaticana(Staff|Voice)|Voice)\b' # Layout objects layout_object = 'Accidental(Cautionary|Placement|Suggestion)?', 'Ambitus(Accidental|Line|NoteHead)?', 'Arpeggio', 'BalloonTextItem', 'Bar(Line|Number)?', 'BassFigure(Alignment(Positioning)?|Bracket|Continuation|Line)?', 'Beam', 'BendAfter', 'Break(AlignGroup|Alignment)?', 'BreathingSign', 'ChordName', 'Clef', 'Cluster(Spanner(Beacon)?)', 'CombineTextScript', 'Cue(Clef|EndClef)?', 'Custos', 'Dot(Column|s)?', 'Double(PercentRepeat(Counter)?|RepeatSlash)?', 'Dynamic(LineSpanner|Text|TextSpanner)?\b', 'Episema', 'Fingering', 'Footnote(Item|Spanner)', 'FretBoard', 'Glissando', 'GraceSpacing', 'Grid(Line|Point)', 'Hairpin', 'HorizontalBracket', 'Instrument(Name|Switch)', 'Key(Cancellation|Signature)', 'Laissez(VibrerTie(Column)?)', 'LedgerLineSpanner', 'LeftEdge', 'LigatureBracket', 'Lyric(Extender|Hyphen|Space|Text)', 'MeasureGrouping', 'MelodyItem', 'MensuralLigature', 'MetronomeMark', 'MultiMeasureRest(Number|Text)?', 'NonMusicalPaperColumn', 'Note(Collision|Column|Head|Name|Spacing)', 'OctavateEight', 'OttavaBracket', 'PaperColumn', 'ParenthesesItem', 'Percent(Repeat(Counter)?)', 'PhrasingSlur', 'PianoPedalBracket', 'RehearsalMark', 'Repeat(Slash|Tie(Column)?)', 'Rest(Collision)?', 'Script(Column|Row)?', 'Slur', 'Sostenuto(Pedal(LineSpanner)?)', 'SpacingSpanner', 'SpanBar', 'Staff(Grouper|Spacing|Symbol)', 'StanzaNumber', 'Stem(Tremolo)?', 'StringNumber', 'StrokeFinger', 'SustainPedal(LineSpanner)?', 'System(StartBar|StartBrace|StartBracket|StartSquare)?', 'TabNoteHead', 'Text(Script|Spanner)', 'Tie(Column)?', 'TimeSignature', 'TrillPitch(Accidental|Group|Head)', 'TrillSpanner', 'Tuplet(Bracket|Number)', 'UnaCordaPedal(LineSpanner)?', 'VaticanaLigature', 'Vertical(Alignment|AxisGroup)', 'VoiceFollower', 'VoltaBracket(Spanner)?' # Context properties # regexp a bit hungry with user-defined variables context_property = '\b[a-z]+([A-Z]+[a-z]+)+', 'ottavation|output|stanza|timing|tonic' # Layout properties layout_property = '\b[a-z]+(-[a-z]+)+', 'indent' # All the other commands (including variables defined by users) function = '\\[[:alpha:]]+'