aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bitbucket@bruce-hill.com>2018-01-25 17:45:46 -0800
committerBruce Hill <bitbucket@bruce-hill.com>2018-01-25 17:45:51 -0800
commit6668918b2e8a5548bb66864c5051ca94c61994d3 (patch)
tree73bd222bfb403f041d5cec608daf5bca558ec1a3
parent90b2888d464327492b3c33db1b72183e2c9f3c71 (diff)
Deleted stale code.
-rw-r--r--examples/sample_code.nom150
-rw-r--r--examples/sample_game.nom287
2 files changed, 0 insertions, 437 deletions
diff --git a/examples/sample_code.nom b/examples/sample_code.nom
deleted file mode 100644
index 08f2af5..0000000
--- a/examples/sample_code.nom
+++ /dev/null
@@ -1,150 +0,0 @@
-# This is just a comment
-#.. Block comments
- start with a #.. and
- continue until dedent
-
-require "lib/core.nom"
-
-say "foo"
-
-say (-4 + (1.5 - .25))
-
-#.. "rule" is just a macro that takes a function call spec and a block of code to run,
- and stores the function definition
-rule [fart] =: say "poot"
-
-# multi-line strings:
-say ".."
- | Once upon a time
- |there was a very
-
-
- |long string
- |
- | with
- | rather
- | silly # fake comments and
- # Real comments look like this
- | indentation
-
- | and "quotes"
- |.." (even fakeouts like that) "
- |(done)
- |
- |^and trailing spaces
- |
-
-say "Strings have interpolation: \(1 + 2) <- like that"
-
-rule [doublefart] =: # this farts twice
- say "poot"
- say "poot"
-
-doublefart
-
-rule [subex work] =: "subexpressions work"
-
-say (subex work)
-
-say (..)
- subex work
-
-say ["lists", "work"]
-
-say []
-
-say [..]
- 1, 2
- 3
-
-rule [say both %1 and %2] =:
- say %1
- say %2
-
-say both [..]
- 1,2
-..and [..]
- 3,4
-
-
-rule [three] =: 3
-say both
-.."a list:"
-..and [..]
- 1,2,three,4
-
-if 1: yes
-..else: no
-
-if 1 {yes} else {no}
-
-say (do {return 5})
-
-# Some variables
-rule [do %one also %two] =:
- do %one
- do %two
-
-do: say "one liner"
-..also: say "another one liner"
-
-say (do {return "wow"})
-
-say (1 + (-(2 * 3)))
-
-say (..)
- 2 + (..)
- 3 * 4
-
-when:
- * (%x == 1):
- say "one"
- * (%x == 2):
- say "two"
- * %x:
- say "nonzero"
- * else:
- say "???"
-
-when %x == ?:
- * 1:
- say "one"
- * 2:
- say "two"
- * else:
- say "???"
-
-
-if %x:
- say "one"
-..else:
- if %y:
- say "two"
- ..else:
- say "three"
-
-
-say ".."
- |this is a longstring
- |
- | with multiple lines
- | and an interpolated expression: \2 + 5\
-
-rule [%n bottles] =:
- lua do> ".."
- |print("running raw lua code...")
- |for i=\(%n),1,-1 do
- | print(tostring(i).." bottles of beer on the wall. Take one down, pass it around,")
- |end
- |print("no more bottles of beer on the wall.")
- nil
-9 bottles
-
-rule [dumsum %nums] =:
- %sum = 0
- for %n in %nums:
- %sum += %n
- return %sum
-
-say (dumsum [1,2,3])
-
diff --git a/examples/sample_game.nom b/examples/sample_game.nom
deleted file mode 100644
index d740655..0000000
--- a/examples/sample_game.nom
+++ /dev/null
@@ -1,287 +0,0 @@
-require "lib/core.nom"
-require "lib/permissions.nom"
-require "lib/secrets.nom"
-require "lib/plurals.nom"
-
-# Users:
-with secrets:
- secret %users = (..)
- =lua ".."
- |setmetatable({}, {__index={
- | by_name=function(self, key) return "User<"..key..">"; end,
- | add=function(self, key) self[key] = self:by_name(key); end,
- |}})
- rule [find user %name, @%name] =:
- =lua "secrets.users:by_name(vars.name) or nomsu:error('Failed to find user: '..tostring(vars.name))"
- rule [add user %name] =:
- =lua "secrets.users:add(vars.name)"
- rule [everybody, everyone] =:
- (%entry's "key") for %entry in (entries in (secret %users))
-
- rule [rules that change users] =: ["add user %"]
-
-# Inventory:
-with secrets:
- secret %inventory = (..)
- =lua ".."
- |setmetatable({}, {__index=function(self,key)
- | local t = setmetatable({}, {__index=function() return 0; end});
- | self[key] = t;
- | return t;
- |end});
-
- rule [inventory] =: dict (..)
- [%inv's "key", dict (%entry for %entry in (entries in (%inv's "value")))]
- ..for %inv in (entries in (secret %inventory))
-
- rule [%person's inventory] =:
- dict (%entry for %entry in (entries in ((secret %inventory)->%person)))
-
- rule [%person's stock of %item] =:
- %item = (canonicalize %item)
- (((secret %inventory) -> %person) -> %item)
-
- rule [%person's stock of %item as str] =:
- %item = (canonicalize %item)
- %count = (%person's stock of %item)
- "\(%count) \((singular %item) if (%count == 1) else (plural %item))"
-
- rule [give %person %count %item] =:
- %item = (canonicalize %item)
- (((secret %inventory) -> %person) -> %item) += %count
-
- rule [give %person %count %item from %donor] =:
- %item = (canonicalize %item)
- if ((%donor's stock of %item) < %count):
- say ".."
- |\(%donor) does not have enough \(%item) to transfer
- ..else:
- (((secret %inventory) -> %person) -> %item) += %count
- (((secret %inventory) -> %donor) -> %item) -= %count
-
- rule [%person has %item, %person has a %item, %person has an %item] =:
- (%person's stock of %item) > 0
-
- rule [rules that change the inventory] =: [..]
- "give % % %", "give % % % from %"
-
- rule [rules that view the inventory] =: [..]
- "inventory", "%'s inventory", "%'s stock of %", "%'s stock of % as str"
-
-rule [you] =:
- =lua "(nomsu.you or 'Anonymous')"
-
-rule [make %person %action, make %person do %action] =:
- lua> ".."
- |local old_you = nomsu.you
- |nomsu.you = vars.person
- do %action
- lua> ".."
- |nomsu.you = old_you
-
-say "===================================================="
-say " NEW GAME"
-say "===================================================="
-
-# Unanimity for proposals
-with secrets:
- rule [pending proposal] =:
- secret %pending
-
- rule [propose source %src] =:
- if (secret %pending):
- error "A proposal is already pending."
- secret %pending = %src
- secret %approvals = []
- say ".."
- |\(underscore)\(yellow)Proposal:\(reset color)
- |\(bright)\(blue)\(%src)\(reset color)
-
- parse [propose %action] as:
- propose source (..)
- source code from tree \%action
-
- rule [with everyone's approval do %action] =:
- run %action
-
- rule [mark %who as approving] =:
- if (not (pending proposal)):
- say "No action pending"
- return
-
- (secret %approvals)-> %who = (yes)
-
- # Check for uncounted votes:
- for %user in (everybody):
- if (not ((secret %approvals)->%user)):
- return
-
- # No one dissents
- with everyone's approval do (pending proposal)
- secret %pending = (nil)
- secret %approvals = (nil)
-
- rule [mark %who as rejecting] =:
- secret %pending = (nil)
- secret %approvals = (nil)
-
- rule [approve, vote yes, vote yea] =:
- mark (you) as approving
-
- rule [reject, vote no, vote nay, veto, disapprove] =:
- mark (you) as rejecting
-
- restrict "with everyone's approval do %" to within "mark % as approving"
- restrict "mark % as approving" to within "approve"
- restrict "mark % as rejecting" to within "reject"
-
-rule [join] =:
- add user (you)
- say ".."
- |\(on yellow)\(black)Welcome to the game, \(you)!\(reset color)
-
-restrict (rules that change users) to within "join"
-
-restrict (..)
- flatten [..]
- ["rule % = %", "make % %", "restrict % to within %"]
- (rules that change the inventory)
-..to within "with everyone's approval do %"
-say "Rule making is now restricted"
-
-join
-
-propose:
- say "Hello world"
-approve
-
-propose:
- say "Hello world again"
-approve
-
-propose:
- give "democracy" 1 "possibility"
- if ("democracy" has "possibility"):
- say "DEMOCRACY WORKS!!!"
- ..else:
- say "democracy has failed :("
-approve
-
-propose:
- rule [fart] =:
- say "poot"
- say "fart should have been defined"
-approve
-say "doop"
-fart
-
-propose:
- with secrets:
- rule [open election %candidates %action] =:
- if (secret %candidates):
- error "An election is already in progress."
- ..else:
- secret %candidates = %candidates
- secret %votes = []
- secret %action = %action
- secret %winner = (nil)
-
- rule [close the election] =:
- secret %candidates = (nil)
- secret %votes = (nil)
- secret %action = (nil)
- secret %winner = (nil)
-
- rule [votes for %candidate] =:
- %votes = []
- for %entry in (entries in (secret %votes)):
- if ((%entry's "value") == %candidate):
- add (%entry's "key") to %votes
- %votes
-
- rule [after winning a fair election do %action] =:
- do %action
-
- rule [the winner] =: secret %winner
-
- rule [vote for %candidate] =:
- for %c in (secret %candidates):
- if (%c == %candidate):
- go to %candidate_is_legit
- error ".."
- |Invalid candidate: \(%candidate)
- -> %candidate_is_legit
-
- (secret %votes)->(you) =: %candidate
- %vote_percent = ((number of (votes for %candidate)) / (number of (everyone)))
- say ".."
- |Vote cast. \(%candidate) now has \(100 * %vote_percent)% of the votes.
- if (%vote_percent > 0.5):
- secret %winner = %candidate
- after winning a fair election do (secret %action)
- close the election
-
- rule [rules that change the election] =: [..]
- "open election %", "close the election", "vote for %"
-
- rule [rules that view the election] =: [..]
- "votes for %"
-
-approve
-
-propose:
- rule [as bill %action] =:
- if ((you) == "Anonymous"):
- make "bill" do %action
- ..else:
- say ".."
- |Who do you think you are, \(you)?
- allow ["as bill %"] to use ["make % %"]
-approve
-as bill: join
-
-propose:
- rule [as dave %action] =:
- if ((you) == "Anonymous"):
- make "dave" do %action
- ..else:
- say ".."
- |Who do you think you are, \(you)?
- allow ["as dave %"] to use ["make % %"]
-approve
-as bill: approve
-as dave: join
-
-propose:
- rule [declare war] =: say "\(red)WAR!!!\(reset color)"
- with secrets:
- secret %president = (nil)
- rule [elect president from %candidates] =:
- open election %candidates:
- say ".."
- |Hail to the chief: \(the winner)
- secret %president = (the winner)
-
- rule [as the president do %action] =: do %action
-
- restrict "declare war" to within "as the president do %"
-approve
-as bill: approve
-as dave: approve
-
-elect president from ["tom", "dick", "harry"]
-vote for "dick"
-as bill: vote for "dick"
-as dave:
- as the president do:
- declare war
-
-propose:
- rule [take a shit] =: say "shit taken."
-
-approve
-as bill: approve
-as dave: approve
-take a shit
-say "Done."
-