stdlib/bundled_gems_no_parens.rb
tests/_examples/stdlib/bundled_gems_no_parens.rb in the metorex repository.
require "mutex_m"
ledger = []
ledger.extend Mutex_m
ledger.mu_synchronize { ledger << :posted }
p [ledger, ledger.mu_locked?]
ledger.mu_lock
p ledger.mu_locked?
ledger.mu_unlock
require "nkf"
sjis = "\x93\xFA\x96\x7B".force_encoding("Shift_JIS")
p NKF.guess(sjis)
p NKF.nkf("-w", sjis)
p NKF.nkf("-s", "日本").bytes
require "kconv"
p sjis.toutf8
p NKF::VERSION
require "racc/parser"
require "racc/grammarfileparser"
require "racc/parserfilegenerator"
grammar = <<~GRAMMAR
class Calculator
rule
expression: expression '+' NUMBER { result = val[0] + val[2] }
| NUMBER
end
GRAMMAR
parsed = Racc::GrammarFileParser.parse(grammar)
states = parsed.grammar.states
generator = Racc::ParserFileGenerator.new(states, parsed.params.dup)
source = generator.generate_parser
eval source
Calculator.class_eval do
def parse(tokens)
@tokens = tokens.dup
do_parse
end
def next_token
@tokens.shift || [false, "$"]
end
end
p Calculator.new.parse([[:NUMBER, 2], ["+", "+"], [:NUMBER, 3], ["+", "+"], [:NUMBER, 4]])
p Racc::Parser::Racc_Runtime_Core_Version
require "resolv-replace"
p IPSocket.getaddress("127.0.0.1")
require "rinda/tuplespace"
space = Rinda::TupleSpace.new
space.write [:invoice, 1042, 99]
space.write [:invoice, 1043, 15]
p space.read_all([:invoice, nil, nil]).size
p space.take([:invoice, 1043, nil])
p space.read_all([:invoice, nil, nil])
require "rinda/ring"
p Rinda::Ring_PORT
p NKF.nkf("-e -m0", "日本").bytes
p "日本".tosjis.encoding
Output:
[[:posted], false]
true
#<Encoding:Shift_JIS>
"日本"
[147, 250, 150, 123]
"日本"
"2.1.5 (2018-12-15)"
9
"1.8.1"
"127.0.0.1"
2
[:invoice, 1043, 15]
[[:invoice, 1042, 99]]
7647
[198, 252, 203, 220]
#<Encoding:Shift_JIS>