Initial project import
This commit is contained in:
commit
23f2d29e32
11957 files changed
+1754577
No files matched your search
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
Random Markov Text Generator
|
||||
|
||||
This program generates pseudo-random text using a Markov chain built from
|
||||
one of several embedded corpora in the strings module. It produces structured output in the
|
||||
form of paragraphs and sentences, with configurable parameters.
|
||||
|
||||
Usage:
|
||||
|
||||
v run lorem.v [--options]
|
||||
./lorem [--options]
|
||||
|
||||
Example:
|
||||
|
||||
./lorem -order 2 -words 12 -sentences 4 -paragraphs 3 -corpus poe
|
||||
*/
|
||||
import strings.lorem
|
||||
import flag
|
||||
import os
|
||||
import rand
|
||||
import time
|
||||
|
||||
fn main() {
|
||||
mut fp := flag.new_flag_parser(os.args[1..])
|
||||
fp.application('lorem')
|
||||
fp.version('1.0')
|
||||
fp.description('Random text generator using a Markov chain')
|
||||
|
||||
order := fp.int('order', `o`, 2, 'Markov order [default: 2]')
|
||||
words_per_sentence := fp.int('words', `w`, 10, 'Words per sentence [default: 10]')
|
||||
sentences_per_paragraph := fp.int('sentences', `s`, 5, 'Sentences per paragraph [default: 5]')
|
||||
paragraphs := fp.int('paragraphs', `p`, 3, 'Paragraph count [default: 3]')
|
||||
corpus_name := fp.string('corpus', `c`, 'lorem',
|
||||
'Corpus name (lorem, poe, darwin, bard) [default: lorem]')
|
||||
seed_text := fp.string('seed', `S`, '', 'Seed phrase (random if omitted)')
|
||||
mut rng_seed := fp.int('rngseed', `r`, 0, 'RNG seed (0 = random)')
|
||||
|
||||
fp.finalize() or {
|
||||
eprintln(err)
|
||||
return
|
||||
}
|
||||
|
||||
if rng_seed == 0 {
|
||||
t := time.now().unix_milli()
|
||||
rand.seed([u32(t), u32(t >> 32)])
|
||||
rng_seed = rand.int()
|
||||
}
|
||||
|
||||
text := lorem.generate(
|
||||
markov_order: order
|
||||
words_per_sentence: words_per_sentence
|
||||
sentences_per_paragraph: sentences_per_paragraph
|
||||
paragraphs: paragraphs
|
||||
corpus_name: corpus_name
|
||||
seed_text: seed_text
|
||||
rng_seed: rng_seed
|
||||
)
|
||||
|
||||
println(text)
|
||||
}
|
||||
Reference in new issue
Block a user