Last active
April 14, 2025 11:22
-
-
Save conartist6/39dc3e65d4ecaf08156008d87ffa1798 to your computer and use it in GitHub Desktop.
BABLR `/[--]/` parse log
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
>>> init('https://bablr.org/languages/core/en/bablr-regex-pattern') | |
>>> startFrame('eat', m`< />`, {}) | |
>>> advance(t`<!0:cstml { bablrLanguage: 'https://bablr.org/languages/core/en/bablr-regex-pattern' }>`) | |
>>> advance(t`<$_>`) | |
--> `@bablr/fragment` | |
>>> eat(m`<$'https://bablr.org/languages/core/en/bablr-regex-pattern':Pattern />`) | |
>>> advance(t`.:`) | |
>>> startFrame('eat', m`.: <$'https://bablr.org/languages/core/en/bablr-regex-pattern':Pattern />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<$'https://bablr.org/languages/core/en/bablr-regex-pattern':Pattern>`) | |
--> Pattern | |
>>> eat(m`openToken: <*Punctuator '/' { balanced: '/', balancedSpan: 'Pattern' } />`) | |
>>> match(m`openToken: <*Punctuator '/' { balanced: '/', balancedSpan: 'Pattern' } />`) | |
>>> advance(t`openToken:`) | |
>>> startFrame('eat', m`openToken: <*Punctuator '/' { balanced: '/', balancedSpan: 'Pattern' } />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<*'https://bablr.org/languages/core/en/bablr-regex-pattern':Punctuator { balanced: '/', balancedSpan: 'Pattern' }>`) | |
>>> advance(t`'/'`) | |
>>> advance(t`</>`) | |
>>> endFrame() | |
>>> eat(m`<_Alternatives />`) | |
>>> startFrame('eat', m`.: <_Alternatives />`, { bind: false, allowEmpty: false }) | |
--> Alternatives | |
>>> eat(m`alternatives[]$: <Alternative />`) | |
>>> advance(t`alternatives[]$:`) | |
>>> advance(t`[]`) | |
>>> advance(t`alternatives[]$:`) | |
>>> startFrame('eat', m`alternatives[]$: <Alternative />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<$'https://bablr.org/languages/core/en/bablr-regex-pattern':Alternative>`) | |
--> Alternative | |
>>> eat(m`elements[]+$: <_Elements />`) | |
>>> startFrame('eat', m`elements[]+$: <_Elements />`, { bind: false, allowEmpty: false }) | |
--> Elements | |
>>> eat(m`.[]: []`) | |
>>> advance(t`elements[]+$:`) | |
>>> advance(t`[]`) | |
>>> match(re`/[^|]/`) | |
>>> match(re`/[^|]/`) | |
>>> eat(m`.[]+: <__Element />`) | |
>>> advance(t`elements[]+$:`) | |
>>> startFrame('eat', m`elements[]+$: <__Element />`, { bind: false, allowEmpty: false }) | |
--> Element | |
>>> guard(m`<*Keyword /[*+?]/ />`) | |
>>> match(m`<*Keyword /[*+?]/ />`) | |
>>> eat(m`<_Any />`, [m`<CharacterClass '[' />`, m`<Group '(?:' />`, m`<__Assertion /[$^]|\\b/i />`, m`<Gap '\\g' />`, m`<__CharacterSet /\.|\\[dswp]/i />`, m`<*Character />`]) | |
>>> startFrame('eat', m`.: <_Any />`, { bind: false, allowEmpty: false }) | |
--> Any | |
>>> eatMatch(m`<CharacterClass '[' />`) | |
>>> match(m`<CharacterClass '[' />`) | |
>>> startFrame('eat', m`elements[]+$: <CharacterClass '[' />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<$'https://bablr.org/languages/core/en/bablr-regex-pattern':CharacterClass { negate: undefined }>`) | |
--> CharacterClass | |
>>> eat(m`openToken: <*Punctuator '[' { balancedSpan: 'CharacterClass', balanced: ']' } />`) | |
>>> match(m`openToken: <*Punctuator '[' { balancedSpan: 'CharacterClass', balanced: ']' } />`) | |
>>> advance(t`openToken:`) | |
>>> startFrame('eat', m`openToken: <*Punctuator '[' { balancedSpan: 'CharacterClass', balanced: ']' } />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<*'https://bablr.org/languages/core/en/bablr-regex-pattern':Punctuator { balancedSpan: 'CharacterClass', balanced: ']' }>`) | |
>>> advance(t`'['`) | |
>>> advance(t`</>`) | |
>>> endFrame() | |
>>> eatMatch(m`negateToken: <*Keyword '^' />`, null, { bind: true }) | |
>>> match(m`negateToken: <*Keyword '^' />`) | |
>>> advance(t`negateToken:`) | |
>>> advance(t`null`) | |
>>> defineAttribute('negate', false) | |
>>> advance(t`{negate: false}`) | |
>>> match(re`/./s`) | |
>>> match(re`/./s`) | |
>>> eat(m`elements[]+$: <__CharacterClassElement />`) | |
>>> advance(t`elements[]+$:`) | |
>>> advance(t`[]`) | |
>>> advance(t`elements[]+$:`) | |
>>> startFrame('eat', m`elements[]+$: <__CharacterClassElement />`, { bind: false, allowEmpty: false }) | |
--> CharacterClassElement | |
>>> eat(m`<_Any />`, [m`<__CharacterSet /\\[dswp]/i />`, m`<Gap '\\g' />`, m`<*Character />`]) | |
>>> startFrame('eat', m`.: <_Any />`, { bind: false, allowEmpty: false }) | |
--> Any | |
>>> eatMatch(m`<__CharacterSet /\\[dswp]/i />`) | |
>>> match(m`<__CharacterSet /\\[dswp]/i />`) | |
>>> eatMatch(m`<Gap '\\g' />`) | |
>>> match(m`<Gap '\\g' />`) | |
>>> eatMatch(m`<*Character />`) | |
>>> branch() | |
>>> startFrame('eatMatch', m`elements[]+$: <*Character />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<*'https://bablr.org/languages/core/en/bablr-regex-pattern':Character>`) | |
--> Character | |
>>> match('\\') | |
>>> match('\\') | |
>>> eat(re`/[^\r\n\t]/`) | |
>>> match(re`/[^\r\n\t]/`) | |
>>> advance(t`'-'`) | |
<-- Character | |
>>> advance(t`</>`) | |
>>> endFrame() | |
>>> accept() | |
<-- Any | |
>>> endFrame() | |
>>> match('-') | |
>>> match('-') | |
<-- CharacterClassElement | |
>>> holdForMatch(m`<CharacterClassRange />`) | |
>>> endFrame(true) | |
>>> branch() | |
>>> startFrame('holdForMatch', m`elements[]+$: <CharacterClassRange />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<$'https://bablr.org/languages/core/en/bablr-regex-pattern':CharacterClassRange>`) | |
--> CharacterClassRange | |
>>> eat(m`min+$: <*Character />`) | |
>>> advance(t`min+$:`) | |
>>> startFrame('eat', m`min+$: <*Character />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<//>`) | |
>>> endFrame() | |
>>> eat(m`sigilToken: <*Punctuator '-' />`) | |
>>> match(m`sigilToken: <*Punctuator '-' />`) | |
>>> advance(t`sigilToken:`) | |
>>> startFrame('eat', m`sigilToken: <*Punctuator '-' />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<*'https://bablr.org/languages/core/en/bablr-regex-pattern':Punctuator>`) | |
>>> advance(t`'-'`) | |
>>> advance(t`</>`) | |
>>> endFrame() | |
>>> eat(m`max+$: <*Character />`) | |
>>> advance(t`max+$:`) | |
>>> startFrame('eat', m`max+$: <*Character />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<*'https://bablr.org/languages/core/en/bablr-regex-pattern':Character>`) | |
--> Character | |
>>> match('\\') | |
>>> match('\\') | |
>>> eat(re`/[^\r\n\t]/`) | |
>>> match(re`/[^\r\n\t]/`) | |
x-- Character | |
>>> throw() | |
x-- CharacterClassRange | |
>>> throw() | |
>>> reject({ bind: false }) | |
>>> match(re`/./s`) | |
>>> match(re`/./s`) | |
>>> eat(m`elements[]+$: <__CharacterClassElement />`) | |
>>> advance(t`elements[]+$:`) | |
>>> startFrame('eat', m`elements[]+$: <__CharacterClassElement />`, { bind: false, allowEmpty: false }) | |
--> CharacterClassElement | |
>>> eat(m`<_Any />`, [m`<__CharacterSet /\\[dswp]/i />`, m`<Gap '\\g' />`, m`<*Character />`]) | |
>>> startFrame('eat', m`.: <_Any />`, { bind: false, allowEmpty: false }) | |
--> Any | |
>>> eatMatch(m`<__CharacterSet /\\[dswp]/i />`) | |
>>> match(m`<__CharacterSet /\\[dswp]/i />`) | |
>>> eatMatch(m`<Gap '\\g' />`) | |
>>> match(m`<Gap '\\g' />`) | |
>>> eatMatch(m`<*Character />`) | |
>>> branch() | |
>>> startFrame('eatMatch', m`elements[]+$: <*Character />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<*'https://bablr.org/languages/core/en/bablr-regex-pattern':Character>`) | |
--> Character | |
>>> match('\\') | |
>>> match('\\') | |
>>> eat(re`/[^\r\n\t]/`) | |
>>> match(re`/[^\r\n\t]/`) | |
>>> advance(t`'-'`) | |
<-- Character | |
>>> advance(t`</>`) | |
>>> endFrame() | |
>>> accept() | |
<-- Any | |
>>> endFrame() | |
>>> match('-') | |
>>> match('-') | |
<-- CharacterClassElement | |
>>> endFrame() | |
>>> match(re`/./s`) | |
>>> match(re`/./s`) | |
>>> eat(m`closeToken: <*Punctuator ']' { balancer: true } />`) | |
>>> match(m`closeToken: <*Punctuator ']' { balancer: true } />`) | |
>>> advance(t`closeToken:`) | |
>>> startFrame('eat', m`closeToken: <*Punctuator ']' { balancer: true } />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<*'https://bablr.org/languages/core/en/bablr-regex-pattern':Punctuator { balancer: true }>`) | |
>>> advance(t`']'`) | |
>>> advance(t`</>`) | |
>>> endFrame() | |
<-- CharacterClass | |
>>> advance(t`</>`) | |
>>> endFrame() | |
<-- Any | |
>>> endFrame() | |
>>> match(re`/[*+?{]/`) | |
>>> match(re`/[*+?{]/`) | |
<-- Element | |
>>> endFrame() | |
>>> match(re`/[^|]/`) | |
>>> match(re`/[^|]/`) | |
<-- Elements | |
>>> endFrame() | |
<-- Alternative | |
>>> advance(t`</>`) | |
>>> endFrame() | |
>>> eatMatch(m`separatorTokens[]: <*Punctuator '|' />`) | |
>>> match(m`separatorTokens[]: <*Punctuator '|' />`) | |
>>> advance(t`separatorTokens[]:`) | |
>>> advance(t`[]`) | |
<-- Alternatives | |
>>> endFrame() | |
>>> eat(m`closeToken: <*Punctuator '/' { balancer: true } />`) | |
>>> match(m`closeToken: <*Punctuator '/' { balancer: true } />`) | |
>>> advance(t`closeToken:`) | |
>>> startFrame('eat', m`closeToken: <*Punctuator '/' { balancer: true } />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<*'https://bablr.org/languages/core/en/bablr-regex-pattern':Punctuator { balancer: true }>`) | |
>>> advance(t`'/'`) | |
>>> advance(t`</>`) | |
>>> endFrame() | |
>>> eat(m`flags$: <Flags />`) | |
>>> advance(t`flags$:`) | |
>>> startFrame('eat', m`flags$: <Flags />`, { bind: false, allowEmpty: false }) | |
>>> advance(t`<$'https://bablr.org/languages/core/en/bablr-regex-pattern':Flags { global: undefined, ignoreCase: undefined, multiline: undefined, dotAll: undefined, unicode: undefined, sticky: undefined }>`) | |
--> Flags | |
>>> match(re`/[gimsuy]/`) | |
>>> match(re`/[gimsuy]/`) | |
>>> defineAttribute('global', false) | |
>>> advance(t`{global: false}`) | |
>>> defineAttribute('ignoreCase', false) | |
>>> advance(t`{ignoreCase: false}`) | |
>>> defineAttribute('multiline', false) | |
>>> advance(t`{multiline: false}`) | |
>>> defineAttribute('dotAll', false) | |
>>> advance(t`{dotAll: false}`) | |
>>> defineAttribute('unicode', false) | |
>>> advance(t`{unicode: false}`) | |
>>> defineAttribute('sticky', false) | |
>>> advance(t`{sticky: false}`) | |
<-- Flags | |
>>> advance(t`</>`) | |
>>> endFrame() | |
<-- Pattern | |
>>> advance(t`</>`) | |
>>> endFrame() | |
<-- `@bablr/fragment` | |
>>> advance(t`</>`) | |
>>> endFrame() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!0:cstml { bablrLanguage: 'https://bablr.org/languages/core/en/bablr-regex-pattern' }> | |
<$_> | |
.: | |
<$Pattern> | |
openToken: <*Punctuator '/' { balanced: '/', balancedSpan: 'Pattern' } /> | |
alternatives[]$: [] | |
alternatives[]$: | |
<$Alternative> | |
elements[]+$: [] | |
elements[]+$: | |
<$CharacterClass { negate: false }> | |
openToken: <*Punctuator '[' { balancedSpan: 'CharacterClass', balanced: ']' } /> | |
negateToken: null | |
elements[]+$: [] | |
elements[]+$: <*Character '-' /> | |
elements[]+$: <*Character '-' /> | |
closeToken: <*Punctuator ']' { balancer: true } /> | |
</> | |
</> | |
separatorTokens[]: [] | |
closeToken: <*Punctuator '/' { balancer: true } /> | |
flags$: <$Flags { global: false, ignoreCase: false, multiline: false, dotAll: false, unicode: false, sticky: false } /> | |
</> | |
</> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment