Remove old untested undocumented examples (#16595)

This commit is contained in:
Juan Carlos
2021-01-05 13:45:58 -03:00
committed by GitHub
parent 3b2f94810e
commit b24d6d4b6a
15 changed files with 0 additions and 311 deletions

View File

@@ -1,24 +0,0 @@
# All and any
template all(container, cond: untyped): bool =
var result = true
for it in items(container):
if not cond(it):
result = false
break
result
template any(container, cond: untyped): bool =
var result = false
for it in items(container):
if cond(it):
result = true
break
result
if all("mystring", {'a'..'z'}.contains) and any("myohmy", 'y'.`==`):
echo "works"
else:
echo "does not work"

View File

@@ -1,7 +0,0 @@
# Filter key=value pairs from "myfile.txt"
import pegs
for x in lines("myfile.txt"):
if x =~ peg"{\ident} \s* '=' \s* {.*}":
echo "Key: ", matches[0],
" Value: ", matches[1]

View File

@@ -1,8 +0,0 @@
# Filter key=value pairs from "myfile.txt"
import re
for x in lines("myfile.txt"):
if x =~ re"(\w+)=(.*)":
echo "Key: ", matches[0], " Value: ", matches[1]

View File

@@ -1,3 +0,0 @@
# Hello world program
echo "Hello World"

View File

@@ -1,6 +0,0 @@
# Shows how the method call syntax can be used to chain calls conveniently.
import strutils, sequtils
echo "Give a list of numbers (separated by spaces): "
stdin.readLine.split.map(parseInt).max.`$`.echo(" is the maximum!")

View File

@@ -1,11 +0,0 @@
kladsfa
asdflksadlfasf
adsfljksadfl
key=/usr/bin/value
key2=/ha/ha

View File

@@ -1,2 +0,0 @@
In this directory you can find several examples for how to use the Nim
library.

View File

@@ -1,60 +0,0 @@
# Example program to show the parsecsv module
# This program reads a CSV file and computes sum, mean, minimum, maximum and
# the standard deviation of its columns.
# The CSV file can have a header which is then used for the output.
import os, streams, parsecsv, strutils, math, stats
if paramCount() < 1:
quit("Usage: statcsv filename[.csv]")
var filename = addFileExt(paramStr(1), "csv")
var s = newFileStream(filename, fmRead)
if s == nil: quit("cannot open the file " & filename)
var
x: CsvParser
header: seq[string]
res: seq[RunningStat]
open(x, s, filename, separator=';', skipInitialSpace = true)
while readRow(x):
if processedRows(x) == 1:
newSeq(res, x.row.len) # allocate space for the result
if validIdentifier(x.row[0]):
# header line:
header = x.row
else:
newSeq(header, x.row.len)
for i in 0..x.row.len-1: header[i] = "Col " & $(i+1)
else:
# data line:
for i in 0..x.row.len-1:
push(res[i], parseFloat(x.row[i]))
x.close()
# Write results:
for i in 0..header.len-1:
stdout.write("\t")
stdout.write(header[i])
stdout.write("\nSum")
for i in 0..header.len-1:
stdout.write("\t")
stdout.write(res[i].sum)
stdout.write("\nMean")
for i in 0..header.len-1:
stdout.write("\t")
stdout.write(res[i].mean)
stdout.write("\nMin")
for i in 0..header.len-1:
stdout.write("\t")
stdout.write(res[i].min)
stdout.write("\nMax")
for i in 0..header.len-1:
stdout.write("\t")
stdout.write(res[i].max)
stdout.write("\nStdDev")
for i in 0..header.len-1:
stdout.write("\t")
stdout.write(res[i].standardDeviation)
stdout.write("\n")

View File

@@ -1,33 +0,0 @@
import strutils
template html(name, matter: untyped) =
proc name(): string =
result = "<html>"
matter
result.add("</html>")
template nestedTag(tag: untyped) =
template tag(matter: typed) =
result.add("<" & astToStr(tag) & ">")
matter
result.add("</" & astToStr(tag) & ">")
template simpleTag(tag: untyped) =
template tag(matter: untyped) =
result.add("<$1>$2</$1>" % [astToStr(tag), matter])
nestedTag body
nestedTag head
nestedTag ul
simpleTag title
simpleTag li
html mainPage:
head:
title "now look at this"
body:
ul:
li "Nim is quite capable"
echo mainPage()

View File

@@ -1,55 +0,0 @@
## This is the example that optimizes a modified "hello world"
import macros
proc invalidFormatString() =
echo "invalidFormatString"
template formatImpl(handleChar: untyped) =
var i = 0
while i < f.len:
if f[i] == '$':
case f[i+1]
of '1'..'9':
var j = 0
i += 1
while f[i] in {'0'..'9'}:
j = j * 10 + ord(f[i]) - ord('0')
i += 1
result.add(a[j-1])
else:
invalidFormatString()
else:
result.add(handleChar(f[i]))
i += 1
proc `%`*(f: string, a: openArray[string]): string =
template identity(x: untyped): untyped = x
result = ""
formatImpl(identity)
macro optFormat{`%`(f, a)}(f: string{lit}, a: openArray[string]): untyped =
result = newNimNode(nnkBracket)
#newCall("&")
let f = f.strVal
formatImpl(newLit)
result = nestList(newIdentNode("&"), result)
template optAdd1{x = y; add(x, z)}(x, y, z: string) =
x = y & z
#template optAdd2{x.add(y); x.add(z)}(x, y, z: string) =
# x.add(y & z)
proc `/&` [T: object](x: T): string =
result = "("
for name, value in fieldPairs(x):
result.add("$1: $2\n" % [name, $value])
result.add(")")
type
MyObject = object
a, b: int
s: string
let obj = MyObject(a: 3, b: 4, s: "abc")
echo(/&obj)

View File

@@ -1,23 +0,0 @@
type
Regex = distinct string
const maxSubpatterns = 10
proc re(x: string): Regex =
result = Regex(x)
proc match(s: string, pattern: Regex, captures: var openArray[string]): bool =
true
template optRe{re(x)}(x: string{lit}): Regex =
var g {.global.} = re(x)
g
template `=~`(s: string, pattern: Regex): bool =
when not declaredInScope(matches):
var matches {.inject.}: array[maxSubPatterns, string]
match(s, pattern, matches)
for line in lines("input.txt"):
if line =~ re"(\w+)=(\w+)":
echo "key-value pair; key: ", matches[0], " value: ", matches[1]

View File

@@ -1,12 +0,0 @@
const
debug = true
template log(msg: string) =
if debug:
echo msg
var
x = 1
y = 2
log("x: " & $x & ", y: " & $y)

View File

@@ -1,11 +0,0 @@
import macros
macro check(ex: untyped): typed =
var info = ex.lineinfo
var expString = ex.toStrLit
result = quote do:
if not `ex`:
echo `info`, ": Check failed: ", `expString`
check 1 < 2

View File

@@ -1,9 +0,0 @@
template htmlTag(tag: untyped) =
proc tag(): string = "<" & astToStr(tag) & ">"
htmlTag(br)
htmlTag(html)
echo br()
echo html()

View File

@@ -1,47 +0,0 @@
import
unittest, macros
var
a = 1
b = 22
c = 1
d = 3
suite "my suite":
setup:
echo "suite setup"
var testVar = "from setup"
teardown:
echo "suite teardown"
test "first suite test":
testVar = "modified"
echo "test var: " & testVar
check a > b
test "second suite test":
echo "test var: " & testVar
proc foo: bool =
echo "running foo"
return true
proc err =
raise newException(ArithmeticDefect, "some exception")
test "final test":
echo "inside suite-less test"
check:
a == c
foo()
d > 10
test "arithmetic failure":
expect(ArithmeticDefect):
err()
expect(ArithmeticDefect, CatchableError):
discard foo()