Starting WikiText parser implementation via PetitParser2
This commit is contained in:
parent
aa216f8816
commit
a7001f732a
42
repository/TiddlyWiki/WikiTextGrammar.class.st
Normal file
42
repository/TiddlyWiki/WikiTextGrammar.class.st
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
Class {
|
||||||
|
#name : #WikiTextGrammar,
|
||||||
|
#superclass : #PP2CompositeNode,
|
||||||
|
#instVars : [
|
||||||
|
'document',
|
||||||
|
'link',
|
||||||
|
'linkOpen',
|
||||||
|
'linkContent',
|
||||||
|
'linkClose'
|
||||||
|
],
|
||||||
|
#category : #'TiddlyWiki-Model'
|
||||||
|
}
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
WikiTextGrammar >> document [
|
||||||
|
^ link islandInSea star
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
WikiTextGrammar >> link [
|
||||||
|
^ linkOpen, linkContent, linkClose ==> #second
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
WikiTextGrammar >> linkClose [
|
||||||
|
^ ']]' asPParser
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
WikiTextGrammar >> linkContent [
|
||||||
|
^ #any asPParser starLazy flatten
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
WikiTextGrammar >> linkOpen [
|
||||||
|
^ '[[' asPParser
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
WikiTextGrammar >> start [
|
||||||
|
^ document
|
||||||
|
]
|
17
repository/TiddlyWiki/WikiTextGrammarTest.class.st
Normal file
17
repository/TiddlyWiki/WikiTextGrammarTest.class.st
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
Class {
|
||||||
|
#name : #WikiTextGrammarTest,
|
||||||
|
#superclass : #PP2CompositeNodeTest,
|
||||||
|
#category : #'TiddlyWiki-Model'
|
||||||
|
}
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
WikiTextGrammarTest >> parserClass [
|
||||||
|
^ WikiTextGrammar
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
WikiTextGrammarTest >> testLink [
|
||||||
|
self
|
||||||
|
parse: '[[Just testing]]'
|
||||||
|
rule: #link
|
||||||
|
]
|
Loading…
Reference in New Issue
Block a user