Skip to content

Parsing rules

Input normalization, layout, block and inline recognition, attributes, and lexical boundaries.

This view contains 111 of 249 active rules. Every rule remains mandatory where applicable.

Return to the rule index or read the complete formal grammar.

RulePartClause
CARVE-P0-0010A LEADING BYTE ORDER MARK IS STRIPPED
CARVE-P0-0020A NULL IS REPLACED BEFORE THE FIRST LINE IS READ
CARVE-P0-0030EVERY FRAME CARRIES OWNERSHIP AND PARAGRAPH STATE SEPARATELY
CARVE-P0-0040ONE AUTHORED BLOCK BASE
CARVE-P0-0050COMMENTS ARE CLASSIFIED BEFORE BLOCK OWNERSHIP
CARVE-P0-0060NO STORED CONTINUATION CLAIM, NO LAZY LINE
CARVE-P0-0070THE MARKER LINE'S CONTENT IS THE ITEM'S FIRST BLOCK
CARVE-P0-0080A FLOATING ATTRIBUTE BLOCK DOES NOT CHANGE THE CONTENT COLUMN
CARVE-P0-0090A QUOTE'S LAST BLOCK MAY ITSELF BE A QUOTE
CARVE-P0-0100A DEFINITION AT THE CONTENT COLUMN ENDS THE PARAGRAPH, NOT THE CONTAINER
CARVE-P0-0110AT A CONTAINER'S CONTENT COLUMN, A BLOCK ENDS THE PARAGRAPH IT SITS UNDER
CARVE-P0-0120A HEADING IS THE VISIBLE CONTROL
CARVE-P0-0130A FENCED BODY IS NOT A PARAGRAPH
CARVE-P0-0140FENCE KIND DOES NOT DETERMINE CONTAINER REACH
CARVE-P0-0150A LAZY FOLD KEEPS THE CONTAINER OPEN FOR FOLLOWING LINES
CARVE-P0-0160A REAL DIV IS A CONTAINER LIKE ANY OTHER
CARVE-P0-0170CONTAINER KIND DOES NOT DETERMINE CONTAINER REACH
CARVE-P0-0180DEFINITION BODIES FOLLOW THE SAME CONTAINER REACH RULE
CARVE-P0-0190A NEW MARKER DOES NOT REACH A DEAD CONTAINER'S COLUMN
CARVE-P0-0200AT OR PAST MEANS THE DEEPEST COLUMN THE LINE REACHES
CARVE-P2-0012A HEADING MARKER STARTS AT ITS CONTAINER'S CONTENT COLUMN
CARVE-P2-0022THE HEADING MARKER SEPARATOR IS A RUN
CARVE-P2-0032SINGLE-LINE HEADINGS
CARVE-P2-0042HEADING IDENTIFIERS
CARVE-P2-0052CODE-FENCE INFO STRING
CARVE-P2-0062COLUMN-EXACT DELIMITERS
CARVE-P2-0072TABS IN CODE
CARVE-P2-0082LAZY CONTINUATION
CARVE-P2-0092MARKER REQUIRES CONTENT
CARVE-P2-0262THE DESCRIPTION MARKER
CARVE-P2-0272WHICH CHARACTERS THE CONTENT TEST IGNORES
CARVE-P2-0102A LEADING CONTENT TAB FOLLOWS NORMAL INDENTATION
CARVE-P2-0112A BARE DOT OPENS A DECIMAL LIST
CARVE-P2-0122A BARE DOT AFTER A BLANK LINE OPENS A LIST
CARVE-P2-0132WHITESPACE IS THE DISCRIMINATOR
CARVE-P2-0142MARKER-LINE NESTED LIST
CARVE-P2-0162INDENTATION IS COLUMNS, NOT CHARACTERS
CARVE-P2-0172BELOW THE BODY'S COLUMN THE BODY ENDS
CARVE-P2-0182AUTHORED BLOCK BASES
CARVE-P2-0192THE ROW TERMINATOR AND AN OPEN RUN
CARVE-P2-0202THE CAPTION MARKER SEPARATOR IS A RUN
CARVE-P2-0212MULTI-LINE CAPTIONS
CARVE-P2-0222CAPTION NUMBER PLACEHOLDER
CARVE-P2-0232THE INTERIOR IS VERBATIM, THE OPENING IS PLACED
CARVE-P2-0252NO TRAILING WHITESPACE
CARVE-P3-0013WHICH SPANS THE SCAN SKIPS
CARVE-P3-0023WHITESPACE HERE IS UNICODE WHITESPACE
CARVE-P3-0033A LABEL THAT BEGINS WITH AN AT SIGN IS NOT A REFERENCE LABEL
CARVE-P3-0043THE FALLBACK IS THE VERBATIM SOURCE RUN, NOT A RESCAN
CARVE-P3-0053ANCHORED AT END OF LINE
CARVE-P3-0063AN INVALID BLOCK IS NOT attributes, SO THE LINE IS NOT A DEFINITION
CARVE-P3-0073TRAILING ATTRIBUTES ON A DEFINITION
CARVE-P3-0093THE DEFINITION MARKER SEPARATOR
CARVE-P3-0113AN AUTOLINK BODY ADMITS NON-ASCII AND EXCLUDES FORMAT CHARACTERS
CARVE-P3-0123TRAILING ATTRIBUTES on math
CARVE-P3-0133FORMAL word-boundary guards
CARVE-P3-0143AN EMPTY BRACE PAIR IS NOT A CONSTRUCT
CARVE-P3-0153INDENTATION IS COLUMNS, NOT CHARACTERS
CARVE-P3-0163EDITORIAL COMMENT CONTENT IS LITERAL
CARVE-P3-0173ADDITION AND DELETION ATTRIBUTES BIND TO THEIR ELEMENT
CARVE-P3-0183SYMBOL ATTRIBUTES FORCE A SPAN WRAPPER
CARVE-P3-0193PRECEDENCE vs SMART TYPOGRAPHY
CARVE-P3-0203A BRACED HYPHEN PAIR IS AN EN DASH, NOT AN EMPTY DELETION
CARVE-P3-0213A HYPHEN RUN OPENING A WORD AFTER WHITESPACE IS A FLAG, NOT A DASH
CARVE-P3-0223THE DOUBLED RUN IS THE CANONICAL ARROW, IN BOTH FAMILIES
CARVE-P4-0014THE INLINE INTERIOR IS SPACE-ONLY, THE BLOCK-ATTRIBUTE LINE IS NOT
CARVE-P4-0034THE SIGIL TAKES NO PADDING
CARVE-P4-0044LANGUAGE SHORTHAND USES THE lang KEY
CARVE-P4-0054A BOOLEAN ATTRIBUTE DOES NOT START WITH AN UNDERSCORE
CARVE-P4-0064A QUOTED VALUE STOPS AT THE NEWLINE
CARVE-P7-0017A TAB IS SYNTAX ONLY IN THE LEADING RUN
CARVE-P7-0027MARKER SEPARATORS AND PADDING SLOTS
CARVE-P7-0037ONE WHITESPACE DEFINITION, IN EVERY CONSTRUCT
CARVE-P9-0029T5 SPAN WALK
CARVE-P9-0699THE ROW ABOVE IS A LINE, NOT A <tr>
CARVE-P9-0039A CONTINUATION ROW LEAVES NO PARAGRAPH OPEN
CARVE-P9-0049T7 GFM DELIMITER ROW
CARVE-P9-0059T8 ROW ATTRIBUTES
CARVE-P9-0079T10 CELL ATTRIBUTES BIND LAST
CARVE-P9-0089T11 A MARKER RUN ENDS AT A SPACE
CARVE-P9-0139AN INVISIBLE LINE IS ONE CLASSIFICATION
CARVE-P9-0149N1a HARD BOUNDARY AFTER THREE BLANK LINES
CARVE-P9-0169A COLON-FENCE LINE THAT FAILS THE OPENER TEST LEAVES THE PARAGRAPH EXPECTING A CLOSER
CARVE-P9-0179ABSORPTION REACHES A PARAGRAPH'S OWN LINES ONLY
CARVE-P9-0209INLINE SPAN VS LINK DISAMBIGUATION
CARVE-P9-0219EMPTY OR INVALID ATTRIBUTE BLOCK
CARVE-P9-0229BOOLEAN (value-less) ATTRIBUTES
CARVE-P9-0239A2a AN INVISIBLE CONSTRUCT IS NOT THE NEXT BLOCK
CARVE-P9-0249A4 DROP IF DANGLING
CARVE-P9-0299L1a THE ITEM'S FIRST BLOCK DOES NOT MATTER
CARVE-P9-0309L1b AN INVISIBLE LINE DOES NOT CANCEL THE SEPARATION
CARVE-P9-0319CONTINUATION-MARKER FLUSH-LEFT MEANS COLUMN 0
CARVE-P9-0329ONE IS A COUNT AND THE BOUNDARY IS NOT
CARVE-P9-0339THE MARKER IS ONE OPERATION IN EVERY CONTAINER
CARVE-P9-0349L6 A COLLECTED DEFINITION LEAVES NO TRACE
CARVE-P9-0359L7 ONE CONSUMED BOOLEAN SPELLS THE LOOSENESS NO BLANK LINE CAN
CARVE-P9-0419TRAILING LINE COMMENTS
CARVE-P9-0429DELIMITED INLINE COMMENTS
CARVE-P9-0439FORCED INTRAWORD EMPHASIS
CARVE-P9-0449LINE BLOCK (VERSE)
CARVE-P9-0459A BACKSLASH BREAK IS NOT ADDITIVE
CARVE-P9-0469AN INLINE CONSTRUCT IS NOT A DEPTH THE RULE STOPS AT
CARVE-P9-0479NO BLOCK CONSTRUCT IS RECOGNIZED INSIDE ONE
CARVE-P9-0489AN INVISIBLE LINE IS REMOVED AT THE BLOCK LAYER
CARVE-P9-0499THE NODE'S SURVIVAL DOES NOT DEPEND ON HOW THE BOUNDARY ABOVE IT WAS SPELLED
CARVE-P9-0509LOCAL HARD-BREAK BLOCK
CARVE-P9-0519THE FOLD PRESUMES AN OPEN PARAGRAPH
CARVE-P9-0529AN INVISIBLE LINE FOLDS LIKE ANY OTHER
CARVE-P9-0539A COMMENT IS THE ONE EXCEPTION
CARVE-P9-0609BLOCK COMMENT FENCES
CARVE-P12-04012TABLE ALIGNMENT RUNS CARRY TWO INDEPENDENT AXES

Released under the MIT License.