-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[tinystory] Add minor work for first revision of project
- Loading branch information
Showing
8 changed files
with
140 additions
and
18 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,7 @@ | ||
/** | ||
* A very simple parser that relies on stories that are written in | ||
* json | ||
*/ | ||
package tinystory | ||
|
||
import ( | ||
|
This file contains 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
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
/** | ||
* A more experimental parser for the tinystory project. I'm mostly | ||
* leveraging around generating json for now. Maybe we can scrap that | ||
* in the future for our very own parser... | ||
*/ | ||
package tinystory | ||
|
||
import ( | ||
"errors" | ||
"io" | ||
"os" | ||
) | ||
|
||
type TokenTypeEnum uint64 | ||
|
||
const ( | ||
TokenKeyword TokenTypeEnum = iota | ||
TokenWord | ||
TokenWhitespace | ||
TokenNewline | ||
TokenNumber | ||
) | ||
|
||
// TODO: this will eventually be used | ||
// nolint | ||
var terminals = []string{ | ||
"TITLE", | ||
"COMMENTS", | ||
"AUTHORS", | ||
"CHOICE", | ||
"FRAGMENT", | ||
"ENDFRAGMENT", | ||
"GOTO", | ||
} | ||
|
||
type Token struct { | ||
Type TokenTypeEnum | ||
Value string | ||
LineNumber uint64 | ||
} | ||
|
||
func ParseTinyStoryFormat(path string) (*Document, error) { | ||
fs, err := os.Open(path) | ||
if err != nil { | ||
return nil, err | ||
} | ||
doc, err := ParseTinystoryFormat(fs) | ||
return doc, err | ||
} | ||
|
||
func ParseTinystoryFormat(reader io.ReadCloser) (*Document, error) { | ||
var b [1]byte | ||
|
||
for { | ||
_, err := reader.Read(b[:]) | ||
if errors.Is(err, io.EOF) { | ||
break | ||
} | ||
} | ||
|
||
defer reader.Close() | ||
return nil, nil | ||
} |
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,32 @@ | ||
{ | ||
"title": "the platypus war: part CXXII", | ||
"authors": ["jon doe", "jon smith", "jane doe"], | ||
"website": "https://github.com/psyomn/cacophagy", | ||
"title": "the platypus war: part CXXII", | ||
"authors": ["jon doe", "jon smith", "jane doe"], | ||
"website": "https://github.com/psyomn/cacophagy", | ||
|
||
"dev_comments": "maybe we can do something better in the future, like provide an editor to create stories easier", | ||
"dev_comments": "maybe we can do something better in the future, like provide an editor to create stories easier", | ||
|
||
"story": [ | ||
[0, | ||
"you wake up in a dark room. you see a platypus. what do you do?", | ||
[["choose to greet the platypus", 1], | ||
["choose to ignore the platypus", 1], | ||
["choose to look at the ceiling", 1]] | ||
], | ||
"story": [ | ||
[0, | ||
"you wake up in a dark room. you see a platypus. what do you do?", | ||
[["choose to greet the platypus", 1], | ||
["choose to ignore the platypus", 1], | ||
["choose to look at the ceiling", 1]] | ||
], | ||
|
||
[1, | ||
[1, | ||
"the platypus heeds your greeting, and tells you about a terrible war between the platypii and gingerbread men\nHe asks for your help.", | ||
[["help platypus fight gingerbread men", 2], | ||
["decline to help the platypus", 3]] | ||
], | ||
[["help platypus fight gingerbread men", 2], | ||
["decline to help the platypus", 3]] | ||
], | ||
|
||
[2, | ||
[2, | ||
"you help the platypus by travelling far lands, finding where the gingerbread men infestation is, and drown their whole civilizatio in mapple syrup. the battle is won!\nThe platypus thanks you, and you go home.", | ||
[] | ||
], | ||
], | ||
|
||
[3, | ||
"you decline to help the platypus because you have better things to do. gingerbread men erupt from the ground, grab the platypus and eat it alive right in front of you. you monster.", | ||
[] | ||
] | ||
] | ||
] | ||
} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
TITLE | ||
The platypus war: part CXXII; | ||
|
||
AUTHORS | ||
jon doe; | ||
jon smith; | ||
jane doeson; | ||
jake andbake; | ||
|
||
|
||
COMMENTS | ||
maybe we can do something better in the future, like provide | ||
an editor to create stories easier. For now maybe the | ||
|
||
FRAGMENT 0 | ||
you wake up in a dark room. you see a platypus. what do you do? | ||
GOTO 1 choose to greet the platypus | ||
GOTO 1 choose to ignore the platypus | ||
GOTO 1 choose to look at the ceiling | ||
ENDFRAGMENT | ||
|
||
FRAGMENT 1 | ||
the platypus heeds your greeting, and tells you about a terrible war | ||
between the platypii and gingerbread men. He asks for your help. | ||
GOTO 2 help platypus fight gingerbread men | ||
GOTO 3 decline to help the platypus | ||
ENDFRAGMENT | ||
|
||
FRAGMENT 2 | ||
you help the platypus by travelling far lands, finding where the | ||
gingerbread men infestation is, and drown their whole civilizatio in | ||
mapple syrup. the battle is won! The platypus thanks you, and you go | ||
home. | ||
ENDFRAGMENT | ||
|
||
FRAGMENT 3 | ||
you decline to help the platypus because you have better things to | ||
do. gingerbread men erupt from the ground, grab the platypus and eat | ||
it alive right in front of you. you monster. | ||
ENDFRAGMENT |