mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 10:25:42 +01:00
Add missing samples
This commit is contained in:
parent
26ff8cb857
commit
db4c9f21b4
52 changed files with 5060 additions and 540 deletions
File diff suppressed because one or more lines are too long
29
test/samples/sample.abap.txt
Normal file
29
test/samples/sample.abap.txt
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
REPORT zrosetta_base64_encode_data.
|
||||
|
||||
DATA: li_client TYPE REF TO if_http_client,
|
||||
lv_encoded TYPE string,
|
||||
lv_data TYPE xstring.
|
||||
|
||||
|
||||
cl_http_client=>create_by_url(
|
||||
EXPORTING
|
||||
url = 'http://rosettacode.org/favicon.ico'
|
||||
IMPORTING
|
||||
client = li_client ).
|
||||
|
||||
li_client->send( ).
|
||||
li_client->receive( ).
|
||||
|
||||
lv_data = li_client->response->get_data( ).
|
||||
|
||||
CALL FUNCTION 'SSFC_BASE64_ENCODE'
|
||||
EXPORTING
|
||||
bindata = lv_data
|
||||
IMPORTING
|
||||
b64data = lv_encoded.
|
||||
|
||||
WHILE strlen( lv_encoded ) > 100.
|
||||
WRITE: / lv_encoded(100).
|
||||
lv_encoded = lv_encoded+100.
|
||||
ENDWHILE.
|
||||
WRITE: / lv_encoded.
|
||||
7
test/samples/sample.apex.txt
Normal file
7
test/samples/sample.apex.txt
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
/* Using a single database query, find all the leads in
|
||||
the database that have the same email address as any
|
||||
of the leads being inserted or updated. */
|
||||
for (Lead lead : [SELECT Email FROM Lead WHERE Email IN :leadMap.KeySet()]) {
|
||||
Lead newLead = leadMap.get(lead.Email);
|
||||
newLead.Email.addError('A lead with this email address already exists.');
|
||||
}
|
||||
5
test/samples/sample.azcli.txt
Normal file
5
test/samples/sample.azcli.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Create a resource group.
|
||||
az group create --name myResourceGroup --location westeurope
|
||||
|
||||
# Create a new virtual machine, this creates SSH keys if not present.
|
||||
az vm create --resource-group myResourceGroup --name myVM --image UbuntuLTS --generate-ssh-keys
|
||||
File diff suppressed because it is too large
Load diff
17
test/samples/sample.cameligo.txt
Normal file
17
test/samples/sample.cameligo.txt
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
type storage = int
|
||||
type parameter =
|
||||
Increment of int
|
||||
| Decrement of int
|
||||
| Reset
|
||||
type return = operation list * storage
|
||||
// Two entrypoints
|
||||
let add (store, delta : storage * int) : storage = store + delta
|
||||
let sub (store, delta : storage * int) : storage = store - delta
|
||||
(* Main access point that dispatches to the entrypoints according to
|
||||
the smart contract parameter. *)
|
||||
let main (action, store : parameter * storage) : return =
|
||||
([] : operation list), // No operations
|
||||
(match action with
|
||||
Increment (n) -> add (store, n)
|
||||
| Decrement (n) -> sub (store, n)
|
||||
| Reset -> 0)
|
||||
54
test/samples/sample.clojure.txt
Normal file
54
test/samples/sample.clojure.txt
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
(ns game-of-life
|
||||
"Conway's Game of Life, based on the work of
|
||||
Christophe Grand (http://clj-me.cgrand.net/2011/08/19/conways-game-of-life)
|
||||
and Laurent Petit (https://gist.github.com/1200343).")
|
||||
|
||||
;;; Core game of life's algorithm functions
|
||||
|
||||
(defn neighbors
|
||||
"Given a cell's coordinates `[x y]`, returns the coordinates of its
|
||||
neighbors."
|
||||
[[x y]]
|
||||
(for [dx [-1 0 1]
|
||||
dy (if (zero? dx)
|
||||
[-1 1]
|
||||
[-1 0 1])]
|
||||
[(+ dx x) (+ dy y)]))
|
||||
|
||||
(defn step
|
||||
"Given a set of living `cells`, computes the new set of living cells."
|
||||
[cells]
|
||||
(set (for [[cell n] (frequencies (mapcat neighbors cells))
|
||||
:when (or (= n 3)
|
||||
(and (= n 2)
|
||||
(cells cell)))]
|
||||
cell)))
|
||||
|
||||
;;; Utility methods for displaying game on a text terminal
|
||||
|
||||
(defn print-grid
|
||||
"Prints a `grid` of `w` columns and `h` rows, on *out*, representing a
|
||||
step in the game."
|
||||
[grid w h]
|
||||
(doseq [x (range (inc w))
|
||||
y (range (inc h))]
|
||||
(when (= y 0) (println))
|
||||
(print (if (grid [x y])
|
||||
"[X]"
|
||||
" . "))))
|
||||
|
||||
(defn print-grids
|
||||
"Prints a sequence of `grids` of `w` columns and `h` rows on *out*,
|
||||
representing several steps."
|
||||
[grids w h]
|
||||
(doseq [grid grids]
|
||||
(print-grid grid w h)
|
||||
(println)))
|
||||
|
||||
;;; Launches an example grid
|
||||
|
||||
(def grid
|
||||
"`grid` represents the initial set of living cells"
|
||||
#{[2 1] [2 2] [2 3]})
|
||||
|
||||
(print-grids (take 3 (iterate step grid)) 5 5)
|
||||
1
test/samples/sample.csp.txt
Normal file
1
test/samples/sample.csp.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
Content-Security-Policy: default-src 'self'; img-src *; media-src media1.com media2.com; script-src userscripts.example.com
|
||||
37
test/samples/sample.dart.txt
Normal file
37
test/samples/sample.dart.txt
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
import 'dart:async';
|
||||
import 'dart:math' show Random;
|
||||
main() async {
|
||||
print('Compute π using the Monte Carlo method.');
|
||||
await for (var estimate in computePi().take(100)) {
|
||||
print('π ≅ $estimate');
|
||||
}
|
||||
}
|
||||
/// Generates a stream of increasingly accurate estimates of π.
|
||||
Stream<double> computePi({int batch: 100000}) async* {
|
||||
var total = 0;
|
||||
var count = 0;
|
||||
while (true) {
|
||||
var points = generateRandom().take(batch);
|
||||
var inside = points.where((p) => p.isInsideUnitCircle);
|
||||
total += batch;
|
||||
count += inside.length;
|
||||
var ratio = count / total;
|
||||
// Area of a circle is A = π⋅r², therefore π = A/r².
|
||||
// So, when given random points with x ∈ <0,1>,
|
||||
// y ∈ <0,1>, the ratio of those inside a unit circle
|
||||
// should approach π / 4. Therefore, the value of π
|
||||
// should be:
|
||||
yield ratio * 4;
|
||||
}
|
||||
}
|
||||
Iterable<Point> generateRandom([int seed]) sync* {
|
||||
final random = Random(seed);
|
||||
while (true) {
|
||||
yield Point(random.nextDouble(), random.nextDouble());
|
||||
}
|
||||
}
|
||||
class Point {
|
||||
final double x, y;
|
||||
const Point(this.x, this.y);
|
||||
bool get isInsideUnitCircle => x * x + y * y <= 1;
|
||||
}
|
||||
23
test/samples/sample.julia.txt
Normal file
23
test/samples/sample.julia.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# good style
|
||||
function fixedpointmap(f; iv, tolerance=1E-7, maxiter=1000)
|
||||
# setup the algorithm
|
||||
x_old = iv
|
||||
normdiff = Inf
|
||||
iter = 1
|
||||
while normdiff > tolerance && iter <= maxiter
|
||||
x_new = f(x_old) # use the passed in map
|
||||
normdiff = norm(x_new - x_old)
|
||||
x_old = x_new
|
||||
iter = iter + 1
|
||||
end
|
||||
return (value = x_old, normdiff=normdiff, iter=iter) # A named tuple
|
||||
end
|
||||
|
||||
# define a map and parameters
|
||||
p = 1.0
|
||||
β = 0.9
|
||||
f(v) = p + β * v # note that p and β are used in the function!
|
||||
|
||||
sol = fixedpointmap(f, iv=0.8, tolerance=1.0E-8) # don't need to pass
|
||||
println("Fixed point = $(sol.value), and |f(x) - x| = $(sol.normdiff) in $(sol.iter)"*
|
||||
" iterations")
|
||||
28
test/samples/sample.kotlin.txt
Normal file
28
test/samples/sample.kotlin.txt
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
const val POINTS_X_PASS: Int = 15
|
||||
val EZPassAccounts: MutableMap<Int, Int> = mutableMapOf(1 to 100, 2 to 100, 3 to 100)
|
||||
val EZPassReport: Map<Int, Int> = EZPassAccounts
|
||||
|
||||
// update points credit
|
||||
fun updatePointsCredit(accountId: Int) {
|
||||
if (EZPassAccounts.containsKey(accountId)) {
|
||||
println("Updating $accountId...")
|
||||
EZPassAccounts[accountId] = EZPassAccounts.getValue(accountId) + POINTS_X_PASS
|
||||
} else {
|
||||
println("Error: Trying to update a non-existing account (id: $accountId)")
|
||||
}
|
||||
}
|
||||
|
||||
fun accountsReport() {
|
||||
println("EZ-Pass report:")
|
||||
EZPassReport.forEach{
|
||||
k, v -> println("ID $k: credit $v")
|
||||
}
|
||||
}
|
||||
|
||||
fun main() {
|
||||
accountsReport()
|
||||
updatePointsCredit(1)
|
||||
updatePointsCredit(1)
|
||||
updatePointsCredit(5)
|
||||
accountsReport()
|
||||
}
|
||||
21
test/samples/sample.lex.txt
Normal file
21
test/samples/sample.lex.txt
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
LEX Paid Escrow.
|
||||
LEXON: 0.2.20
|
||||
COMMENT: 3.f - an escrow that is controlled by a third party for a fee.
|
||||
|
||||
“Payer” is a person.
|
||||
“Payee” is a person.
|
||||
“Arbiter” is a person.
|
||||
“Fee” is an amount.
|
||||
|
||||
The Payer pays an Amount into escrow,
|
||||
appoints the Payee,
|
||||
appoints the Arbiter,
|
||||
and also fixes the Fee.
|
||||
|
||||
CLAUSE: Pay Out.
|
||||
The Arbiter may pay from escrow the Fee to themselves,
|
||||
and afterwards pay the remainder of the escrow to the Payee.
|
||||
|
||||
CLAUSE: Pay Back.
|
||||
The Arbiter may pay from escrow the Fee to themselves,
|
||||
and afterwards return the remainder of the escrow to the Payer.
|
||||
13
test/samples/sample.mips.txt
Normal file
13
test/samples/sample.mips.txt
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# A[i] = A[i/2] + 1;
|
||||
lw $t0, 0($gp) # fetch i
|
||||
srl $t1, $t0, 1 # i/2
|
||||
sll $t1, $t1, 2 # turn i/2 into a byte offset (*4)
|
||||
add $t1, $gp, $t1 # &A[i/2] - 28
|
||||
lw $t1, 28($t1) # fetch A[i/2]
|
||||
addi $t1, $t1, 1 # A[i/2] + 1
|
||||
sll $t2, $t0, 2 # turn i into a byte offset
|
||||
add $t2, $t2, $gp # &A[i] - 28
|
||||
sw $t1, 28($t2) # A[i] = ...
|
||||
# A[i+1] = -1;
|
||||
addi $t1, $zero, -1 # -1
|
||||
sw $t1, 32($t2) # A[i+1] = -1
|
||||
8
test/samples/sample.mysql.txt
Normal file
8
test/samples/sample.mysql.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
CREATE TABLE shop (
|
||||
article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
|
||||
dealer CHAR(20) DEFAULT '' NOT NULL,
|
||||
price DOUBLE(16,2) DEFAULT '0.00' NOT NULL,
|
||||
PRIMARY KEY(article, dealer));
|
||||
INSERT INTO shop VALUES
|
||||
(1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
|
||||
(3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
|
||||
|
|
@ -26,4 +26,3 @@ begin
|
|||
Writeln(E.ClassName, ': ', E.Message);
|
||||
end;
|
||||
end.
|
||||
|
||||
|
|
|
|||
20
test/samples/sample.pascaligo.txt
Normal file
20
test/samples/sample.pascaligo.txt
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
type storage is int
|
||||
type parameter is
|
||||
Increment of int
|
||||
| Decrement of int
|
||||
| Reset
|
||||
type return is list (operation) * storage
|
||||
// Two entrypoints
|
||||
function add (const store : storage; const delta : int) : storage is
|
||||
store + delta
|
||||
function sub (const store : storage; const delta : int) : storage is
|
||||
store - delta
|
||||
(* Main access point that dispatches to the entrypoints according to
|
||||
the smart contract parameter. *)
|
||||
function main (const action : parameter; const store : storage) : return is
|
||||
((nil : list (operation)), // No operations
|
||||
case action of
|
||||
Increment (n) -> add (store, n)
|
||||
| Decrement (n) -> sub (store, n)
|
||||
| Reset -> 0
|
||||
end)
|
||||
18
test/samples/sample.perl.txt
Normal file
18
test/samples/sample.perl.txt
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#!/usr/bin/perl
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Path::Tiny;
|
||||
|
||||
my $dir = path('foo','bar'); # foo/bar
|
||||
|
||||
# Iterate over the content of foo/bar
|
||||
my $iter = $dir->iterator;
|
||||
while (my $file = $iter->()) {
|
||||
|
||||
# See if it is a directory and skip
|
||||
next if $file->is_dir();
|
||||
|
||||
# Print out the file name and path
|
||||
print "$file\n";
|
||||
}
|
||||
8
test/samples/sample.pgsql.txt
Normal file
8
test/samples/sample.pgsql.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
BEGIN
|
||||
SELECT * INTO STRICT myrec FROM emp WHERE empname = myname;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND THEN
|
||||
RAISE EXCEPTION 'employee % not found', myname;
|
||||
WHEN TOO_MANY_ROWS THEN
|
||||
RAISE EXCEPTION 'employee % not unique', myname;
|
||||
END;
|
||||
12
test/samples/sample.powerquery.txt
Normal file
12
test/samples/sample.powerquery.txt
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
let
|
||||
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
|
||||
SplitColumnDelimiter = Table.SplitColumn(Source,"Input",Splitter.SplitTextByDelimiter(","),13),
|
||||
Unpivot = Table.Unpivot(SplitColumnDelimiter,{"Input.1", "Input.2", "Input.3", "Input.4",
|
||||
"Input.5", "Input.6", "Input.7", "Input.8", "Input.9", "Input.10", "Input.11", "Input.12"
|
||||
, "Input.13"},"Attribute","Value"),
|
||||
RemovedColumns = Table.RemoveColumns(Unpivot,{"Attribute"}),
|
||||
DuplicatesRemoved = Table.Distinct(RemovedColumns),
|
||||
GroupedRows = Table.Group(DuplicatesRemoved, {"RowID"}, {{"Count of Distinct Values"
|
||||
, each Table.RowCount(_), type number}})
|
||||
in
|
||||
GroupedRows
|
||||
4
test/samples/sample.redis.txt
Normal file
4
test/samples/sample.redis.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
EXISTS mykey
|
||||
APPEND mykey "Hello"
|
||||
APPEND mykey " World"
|
||||
GET mykey
|
||||
9
test/samples/sample.redshift.txt
Normal file
9
test/samples/sample.redshift.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
create view tables_vw as
|
||||
select distinct(id) table_id
|
||||
,trim(datname) db_name
|
||||
,trim(nspname) schema_name
|
||||
,trim(relname) table_name
|
||||
from stv_tbl_perm
|
||||
join pg_class on pg_class.oid = stv_tbl_perm.id
|
||||
join pg_namespace on pg_namespace.oid = relnamespace
|
||||
join pg_database on pg_database.oid = stv_tbl_perm.db_id;
|
||||
26
test/samples/sample.restructuredtext.txt
Normal file
26
test/samples/sample.restructuredtext.txt
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
=================
|
||||
My Project Readme
|
||||
=================
|
||||
-------------------------
|
||||
Clever subtitle goes here
|
||||
-------------------------
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
This is an example reStructuredText document that starts at the very top
|
||||
with a title and a sub-title. There is one primary header, Introduction.
|
||||
There is one example subheading below.
|
||||
The document is just plain text so it is easily readable even before
|
||||
being converted to HTML, man page, PDF or other formats.
|
||||
|
||||
Subheading
|
||||
----------
|
||||
|
||||
The basic syntax is not that different from Markdown, but it also
|
||||
has many more powerful features that Markdown doesn't have. We aren't
|
||||
taking advantage of those yet though.
|
||||
|
||||
- Bullet points
|
||||
- Are intuitive
|
||||
- And simple too
|
||||
29
test/samples/sample.rust.txt
Normal file
29
test/samples/sample.rust.txt
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
fn main() {
|
||||
let greetings = ["Hello", "Hola", "Bonjour",
|
||||
"Ciao", "こんにちは", "안녕하세요",
|
||||
"Cześć", "Olá", "Здравствуйте",
|
||||
"Chào bạn", "您好", "Hallo",
|
||||
"Hej", "Ahoj", "سلام"];
|
||||
|
||||
for (num, greeting) in greetings.iter().enumerate() {
|
||||
print!("{} : ", greeting);
|
||||
match num {
|
||||
0 => println!("This code is editable and runnable!"),
|
||||
1 => println!("¡Este código es editable y ejecutable!"),
|
||||
2 => println!("Ce code est modifiable et exécutable !"),
|
||||
3 => println!("Questo codice è modificabile ed eseguibile!"),
|
||||
4 => println!("このコードは編集して実行出来ます!"),
|
||||
5 => println!("여기에서 코드를 수정하고 실행할 수 있습니다!"),
|
||||
6 => println!("Ten kod można edytować oraz uruchomić!"),
|
||||
7 => println!("Este código é editável e executável!"),
|
||||
8 => println!("Этот код можно отредактировать и запустить!"),
|
||||
9 => println!("Bạn có thể edit và run code trực tiếp!"),
|
||||
10 => println!("这段代码是可以编辑并且能够运行的!"),
|
||||
11 => println!("Dieser Code kann bearbeitet und ausgeführt werden!"),
|
||||
12 => println!("Den här koden kan redigeras och köras!"),
|
||||
13 => println!("Tento kód můžete upravit a spustit"),
|
||||
14 => println!("این کد قابلیت ویرایش و اجرا دارد!"),
|
||||
_ => {},
|
||||
}
|
||||
}
|
||||
}
|
||||
10
test/samples/sample.sb.txt
Normal file
10
test/samples/sample.sb.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
begin:
|
||||
TextWindow.Write("Enter a number: ")
|
||||
num = TextWindow.ReadNumber()
|
||||
remainder = Math.Remainder(num, 2)
|
||||
If (remainder = 0) Then
|
||||
TextWindow.WriteLine("The number is Even")
|
||||
Else
|
||||
TextWindow.WriteLine("The number is Odd")
|
||||
EndIf
|
||||
Goto begin
|
||||
53
test/samples/sample.scala.txt
Normal file
53
test/samples/sample.scala.txt
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
package examples
|
||||
|
||||
/** Quick sort, imperative style */
|
||||
object sort {
|
||||
|
||||
/** Nested methods can use and even update everything
|
||||
* visible in their scope (including local variables or
|
||||
* arguments of enclosing methods).
|
||||
*/
|
||||
def sort(a: Array[Int]) {
|
||||
|
||||
def swap(i: Int, j: Int) {
|
||||
val t = a(i); a(i) = a(j); a(j) = t
|
||||
}
|
||||
|
||||
def sort1(l: Int, r: Int) {
|
||||
val pivot = a((l + r) / 2)
|
||||
var i = l
|
||||
var j = r
|
||||
while (i <= j) {
|
||||
while (a(i) < pivot) i += 1
|
||||
while (a(j) > pivot) j -= 1
|
||||
if (i <= j) {
|
||||
swap(i, j)
|
||||
i += 1
|
||||
j -= 1
|
||||
}
|
||||
}
|
||||
if (l < j) sort1(l, j)
|
||||
if (j < r) sort1(i, r)
|
||||
}
|
||||
|
||||
if (a.length > 0)
|
||||
sort1(0, a.length - 1)
|
||||
}
|
||||
|
||||
def println(ar: Array[Int]) {
|
||||
def print1 = {
|
||||
def iter(i: Int): String =
|
||||
ar(i) + (if (i < ar.length-1) "," + iter(i+1) else "")
|
||||
if (ar.length == 0) "" else iter(0)
|
||||
}
|
||||
Console.println("[" + print1 + "]")
|
||||
}
|
||||
|
||||
def main(args: Array[String]) {
|
||||
val ar = Array(6, 2, 8, 5, 1)
|
||||
println(ar)
|
||||
sort(ar)
|
||||
println(ar)
|
||||
}
|
||||
|
||||
}
|
||||
105
test/samples/sample.scheme.txt
Normal file
105
test/samples/sample.scheme.txt
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
;;; make-matrix creates a matrix (a vector of vectors).
|
||||
(define make-matrix
|
||||
(lambda (rows columns)
|
||||
(do ((m (make-vector rows))
|
||||
(i 0 (+ i 1)))
|
||||
((= i rows) m)
|
||||
(vector-set! m i (make-vector columns)))))
|
||||
|
||||
;;; matrix? checks to see if its argument is a matrix.
|
||||
;;; It isn't foolproof, but it's generally good enough.
|
||||
(define matrix?
|
||||
(lambda (x)
|
||||
(and (vector? x)
|
||||
(> (vector-length x) 0)
|
||||
(vector? (vector-ref x 0)))))
|
||||
|
||||
;; matrix-rows returns the number of rows in a matrix.
|
||||
(define matrix-rows
|
||||
(lambda (x)
|
||||
(vector-length x)))
|
||||
|
||||
;; matrix-columns returns the number of columns in a matrix.
|
||||
(define matrix-columns
|
||||
(lambda (x)
|
||||
(vector-length (vector-ref x 0))))
|
||||
|
||||
;;; matrix-ref returns the jth element of the ith row.
|
||||
(define matrix-ref
|
||||
(lambda (m i j)
|
||||
(vector-ref (vector-ref m i) j)))
|
||||
|
||||
;;; matrix-set! changes the jth element of the ith row.
|
||||
(define matrix-set!
|
||||
(lambda (m i j x)
|
||||
(vector-set! (vector-ref m i) j x)))
|
||||
|
||||
;;; mul is the generic matrix/scalar multiplication procedure
|
||||
(define mul
|
||||
(lambda (x y)
|
||||
;; mat-sca-mul multiplies a matrix by a scalar.
|
||||
(define mat-sca-mul
|
||||
(lambda (m x)
|
||||
(let* ((nr (matrix-rows m))
|
||||
(nc (matrix-columns m))
|
||||
(r (make-matrix nr nc)))
|
||||
(do ((i 0 (+ i 1)))
|
||||
((= i nr) r)
|
||||
(do ((j 0 (+ j 1)))
|
||||
((= j nc))
|
||||
(matrix-set! r i j
|
||||
(* x (matrix-ref m i j))))))))
|
||||
|
||||
;; mat-mat-mul multiplies one matrix by another, after verifying
|
||||
;; that the first matrix has as many columns as the second
|
||||
;; matrix has rows.
|
||||
(define mat-mat-mul
|
||||
(lambda (m1 m2)
|
||||
(let* ((nr1 (matrix-rows m1))
|
||||
(nr2 (matrix-rows m2))
|
||||
(nc2 (matrix-columns m2))
|
||||
(r (make-matrix nr1 nc2)))
|
||||
(if (not (= (matrix-columns m1) nr2))
|
||||
(match-error m1 m2))
|
||||
(do ((i 0 (+ i 1)))
|
||||
((= i nr1) r)
|
||||
(do ((j 0 (+ j 1)))
|
||||
((= j nc2))
|
||||
(do ((k 0 (+ k 1))
|
||||
(a 0
|
||||
(+ a
|
||||
(* (matrix-ref m1 i k)
|
||||
(matrix-ref m2 k j)))))
|
||||
((= k nr2)
|
||||
(matrix-set! r i j a))))))))
|
||||
|
||||
;; type-error is called to complain when mul receives an invalid
|
||||
;; type of argument.
|
||||
(define type-error
|
||||
(lambda (what)
|
||||
(error 'mul
|
||||
"~s is not a number or matrix"
|
||||
what)))
|
||||
|
||||
;; match-error is called to complain when mul receives a pair of
|
||||
;; incompatible arguments.
|
||||
(define match-error
|
||||
(lambda (what1 what2)
|
||||
(error 'mul
|
||||
"~s and ~s are incompatible operands"
|
||||
what1
|
||||
what2)))
|
||||
|
||||
;; body of mul; dispatch based on input types
|
||||
(cond
|
||||
((number? x)
|
||||
(cond
|
||||
((number? y) (* x y))
|
||||
((matrix? y) (mat-sca-mul y x))
|
||||
(else (type-error y))))
|
||||
((matrix? x)
|
||||
(cond
|
||||
((number? y) (mat-sca-mul x y))
|
||||
((matrix? y) (mat-mat-mul x y))
|
||||
(else (type-error y))))
|
||||
(else (type-error x)))))
|
||||
42
test/samples/sample.shell.txt
Normal file
42
test/samples/sample.shell.txt
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
#!/bin/bash
|
||||
# Simple line count example, using bash
|
||||
#
|
||||
# Bash tutorial: http://linuxconfig.org/Bash_scripting_Tutorial#8-2-read-file-into-bash-array
|
||||
# My scripting link: http://www.macs.hw.ac.uk/~hwloidl/docs/index.html#scripting
|
||||
#
|
||||
# Usage: ./line_count.sh file
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Link filedescriptor 10 with stdin
|
||||
exec 10<&0
|
||||
# stdin replaced with a file supplied as a first argument
|
||||
exec < $1
|
||||
# remember the name of the input file
|
||||
in=$1
|
||||
|
||||
# init
|
||||
file="current_line.txt"
|
||||
let count=0
|
||||
|
||||
# this while loop iterates over all lines of the file
|
||||
while read LINE
|
||||
do
|
||||
# increase line counter
|
||||
((count++))
|
||||
# write current line to a tmp file with name $file (not needed for counting)
|
||||
echo $LINE > $file
|
||||
# this checks the return code of echo (not needed for writing; just for demo)
|
||||
if [ $? -ne 0 ]
|
||||
then echo "Error in writing to file ${file}; check its permissions!"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Number of lines: $count"
|
||||
echo "The last line of the file is: `cat ${file}`"
|
||||
|
||||
# Note: You can achieve the same by just using the tool wc like this
|
||||
echo "Expected number of lines: `wc -l $in`"
|
||||
|
||||
# restore stdin from filedescriptor 10
|
||||
# and close filedescriptor 10
|
||||
exec 0<&10 10<&-
|
||||
34
test/samples/sample.st.txt
Normal file
34
test/samples/sample.st.txt
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
CONFIGURATION DefaultCfg
|
||||
VAR_GLOBAL
|
||||
Start_Stop AT %IX0.0: BOOL; (* This is a comment *)
|
||||
END_VAR
|
||||
TASK NewTask (INTERVAL := T#20ms);
|
||||
PROGRAM Main WITH NewTask : PLC_PRG;
|
||||
END_CONFIGURATION
|
||||
|
||||
PROGRAM demo
|
||||
VAR_EXTERNAL
|
||||
Start_Stop: BOOL;
|
||||
END_VAR
|
||||
VAR
|
||||
a : REAL; // Another comment
|
||||
todTest: TIME_OF_DAY := TOD#12:55;
|
||||
END_VAR
|
||||
a := csq(12.5);
|
||||
TON1(IN := TRUE, PT := T#2s);
|
||||
16#FAC0 2#1001_0110
|
||||
IF TON1.Q AND a > REAL#100 THEN
|
||||
Start_Stop := TRUE;
|
||||
END_IF
|
||||
END_PROGRAM;
|
||||
|
||||
/* Get a square of the circle */
|
||||
FUNCTION csq : REAL
|
||||
VAR_INPUT
|
||||
r: REAL;
|
||||
END_VAR
|
||||
VAR CONSTANT
|
||||
c_pi: REAL := 3.14;
|
||||
END_VAR
|
||||
csq := ABS(c_pi * (r * 2));
|
||||
END_FUNCTION
|
||||
28
test/samples/sample.systemverilog.txt
Normal file
28
test/samples/sample.systemverilog.txt
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
// File : tb_top.sv
|
||||
module tb_top ();
|
||||
|
||||
reg clk;
|
||||
reg resetn;
|
||||
reg d;
|
||||
wire q;
|
||||
|
||||
// Instantiate the design
|
||||
d_ff d_ff0 ( .clk (clk),
|
||||
.resetn (resetn),
|
||||
.d (d),
|
||||
.q (q));
|
||||
|
||||
// Create a clock
|
||||
always #10 clk <= ~clk;
|
||||
|
||||
initial begin
|
||||
resetn <= 0;
|
||||
d <= 0;
|
||||
|
||||
#10 resetn <= 1;
|
||||
#5 d <= 1;
|
||||
#8 d <= 0;
|
||||
#2 d <= 1;
|
||||
#10 d <= 0;
|
||||
end
|
||||
endmodule
|
||||
18
test/samples/sample.tcl.txt
Normal file
18
test/samples/sample.tcl.txt
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
proc find {{basedir .} {filterScript {}}} {
|
||||
set oldwd [pwd]
|
||||
cd $basedir
|
||||
set cwd [pwd]
|
||||
set filenames [glob -nocomplain * .*]
|
||||
set files {}
|
||||
set filt [string length $filterScript]
|
||||
foreach filename $filenames {
|
||||
if {!$filt || [eval $filterScript [list $filename]]} {
|
||||
lappend files [file join $cwd $filename]
|
||||
}
|
||||
if {[file isdirectory $filename]} {
|
||||
set files [concat $files [find $filename $filterScript]]
|
||||
}
|
||||
}
|
||||
cd $oldwd
|
||||
return $files
|
||||
}
|
||||
12
test/samples/sample.twig.txt
Normal file
12
test/samples/sample.twig.txt
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>{% block title %}Welcome!{% endblock %}</title>
|
||||
{% block stylesheets %}{% endblock %}
|
||||
</head>
|
||||
<body>
|
||||
{% block body %}{% endblock %}
|
||||
{% block javascripts %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
35
test/samples/sample.verilog.txt
Normal file
35
test/samples/sample.verilog.txt
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
`include "first_counter.v"
|
||||
module first_counter_tb();
|
||||
// Declare inputs as regs and outputs as wires
|
||||
reg clock, reset, enable;
|
||||
wire [3:0] counter_out;
|
||||
|
||||
// Initialize all variables
|
||||
initial begin
|
||||
$display ("time\t clk reset enable counter");
|
||||
$monitor ("%g\t %b %b %b %b",
|
||||
$time, clock, reset, enable, counter_out);
|
||||
clock = 1; // initial value of clock
|
||||
reset = 0; // initial value of reset
|
||||
enable = 0; // initial value of enable
|
||||
#5 reset = 1; // Assert the reset
|
||||
#10 reset = 0; // De-assert the reset
|
||||
#10 enable = 1; // Assert enable
|
||||
#100 enable = 0; // De-assert enable
|
||||
#5 $finish; // Terminate simulation
|
||||
end
|
||||
|
||||
// Clock generator
|
||||
always begin
|
||||
#5 clock = ~clock; // Toggle clock every 5 ticks
|
||||
end
|
||||
|
||||
// Connect DUT to test bench
|
||||
first_counter U_counter (
|
||||
clock,
|
||||
reset,
|
||||
enable,
|
||||
counter_out
|
||||
);
|
||||
|
||||
endmodule
|
||||
38
website/index/samples/sample.aes.txt
Normal file
38
website/index/samples/sample.aes.txt
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
// Contract simulating developers organization
|
||||
contract HackBG =
|
||||
|
||||
record state = { developers: map(address, developer) }
|
||||
|
||||
record developer = { name: string
|
||||
, age: int
|
||||
, skillset: map(skill, experience) }
|
||||
|
||||
type skill = string
|
||||
type experience = int
|
||||
|
||||
datatype event =
|
||||
LogDeveloperAdded(indexed address, indexed int, string)
|
||||
|
||||
entrypoint init() : state = { developers = {} }
|
||||
|
||||
stateful entrypoint dev_add(account: address, dev_name: string, dev_age: int) =
|
||||
require(!is_member(account), "ERROR_DEVELOPER_ALREADY_EXISTS")
|
||||
let dev : developer = { name = dev_name
|
||||
, age = dev_age
|
||||
, skillset = {} }
|
||||
put(state{ developers[account] = dev })
|
||||
Chain.event(LogDeveloperAdded(account, Chain.timestamp, dev_name))
|
||||
|
||||
stateful entrypoint dev_update(account: address, dev_name: string, dev_age: int) =
|
||||
require(is_member(account), "ERROR_DEVELOPER_DOES_NOT_EXIST")
|
||||
put(state{ developers[account].name = dev_name })
|
||||
put(state{ developers[account].age = dev_age })
|
||||
|
||||
function is_member(account: address) : bool =
|
||||
Map.member(account, state.developers)
|
||||
|
||||
stateful entrypoint dev_skill_modify(account: address, skill: string, experience: int) =
|
||||
put(state{ developers[account].skillset[skill] = experience })
|
||||
|
||||
entrypoint dev_get(account: address) : developer =
|
||||
state.developers[account]
|
||||
17
website/index/samples/sample.cameligo.txt
Normal file
17
website/index/samples/sample.cameligo.txt
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
type storage = int
|
||||
type parameter =
|
||||
Increment of int
|
||||
| Decrement of int
|
||||
| Reset
|
||||
type return = operation list * storage
|
||||
// Two entrypoints
|
||||
let add (store, delta : storage * int) : storage = store + delta
|
||||
let sub (store, delta : storage * int) : storage = store - delta
|
||||
(* Main access point that dispatches to the entrypoints according to
|
||||
the smart contract parameter. *)
|
||||
let main (action, store : parameter * storage) : return =
|
||||
([] : operation list), // No operations
|
||||
(match action with
|
||||
Increment (n) -> add (store, n)
|
||||
| Decrement (n) -> sub (store, n)
|
||||
| Reset -> 0)
|
||||
|
|
@ -1,23 +1,38 @@
|
|||
/*
|
||||
* C# Program to Display All the Prime Numbers Between 1 to 100
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace VS
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
ProcessStartInfo si = new ProcessStartInfo();
|
||||
float load= 3.2e02f;
|
||||
|
||||
si.FileName = @"tools\\node.exe";
|
||||
si.Arguments = "tools\\simpleserver.js";
|
||||
|
||||
Process.Start(si);
|
||||
{
|
||||
bool isPrime = true;
|
||||
Console.WriteLine("Prime Numbers : ");
|
||||
for (int i = 2; i <= 100; i++)
|
||||
{
|
||||
for (int j = 2; j <= 100; j++)
|
||||
{
|
||||
if (i != j && i % j == 0)
|
||||
{
|
||||
isPrime = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isPrime)
|
||||
{
|
||||
Console.Write("\t" +i);
|
||||
}
|
||||
isPrime = true;
|
||||
}
|
||||
Console.ReadKey();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
37
website/index/samples/sample.dart.txt
Normal file
37
website/index/samples/sample.dart.txt
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
import 'dart:async';
|
||||
import 'dart:math' show Random;
|
||||
main() async {
|
||||
print('Compute π using the Monte Carlo method.');
|
||||
await for (var estimate in computePi().take(100)) {
|
||||
print('π ≅ $estimate');
|
||||
}
|
||||
}
|
||||
/// Generates a stream of increasingly accurate estimates of π.
|
||||
Stream<double> computePi({int batch: 100000}) async* {
|
||||
var total = 0;
|
||||
var count = 0;
|
||||
while (true) {
|
||||
var points = generateRandom().take(batch);
|
||||
var inside = points.where((p) => p.isInsideUnitCircle);
|
||||
total += batch;
|
||||
count += inside.length;
|
||||
var ratio = count / total;
|
||||
// Area of a circle is A = π⋅r², therefore π = A/r².
|
||||
// So, when given random points with x ∈ <0,1>,
|
||||
// y ∈ <0,1>, the ratio of those inside a unit circle
|
||||
// should approach π / 4. Therefore, the value of π
|
||||
// should be:
|
||||
yield ratio * 4;
|
||||
}
|
||||
}
|
||||
Iterable<Point> generateRandom([int seed]) sync* {
|
||||
final random = Random(seed);
|
||||
while (true) {
|
||||
yield Point(random.nextDouble(), random.nextDouble());
|
||||
}
|
||||
}
|
||||
class Point {
|
||||
final double x, y;
|
||||
const Point(this.x, this.y);
|
||||
bool get isInsideUnitCircle => x * x + y * y <= 1;
|
||||
}
|
||||
|
|
@ -1,263 +1,263 @@
|
|||
# GraphQL Schema Definition Language
|
||||
|
||||
"""
|
||||
Color value
|
||||
"""
|
||||
scalar Color
|
||||
|
||||
"""
|
||||
Node interface
|
||||
|
||||
- allows (re)fetch arbitrary entity only by ID
|
||||
- allows client side cache normalization
|
||||
|
||||
See [Relay Global Object Identification Specification](https://facebook.github.io/relay/graphql/objectidentification.htm)
|
||||
"""
|
||||
interface Node {
|
||||
"""
|
||||
Globally unique identifier,
|
||||
typically `${__typename}:${dbId}`
|
||||
may be encoded in *base64*
|
||||
"""
|
||||
id: ID!
|
||||
}
|
||||
|
||||
"""
|
||||
A character in the Star Wars Trilogy
|
||||
"""
|
||||
interface Character {
|
||||
"""
|
||||
The id of the character.
|
||||
"""
|
||||
id: ID!
|
||||
|
||||
"""
|
||||
The name of the character.
|
||||
"""
|
||||
name: String
|
||||
|
||||
"""
|
||||
The friends of the character, or an empty list if they have none.
|
||||
"""
|
||||
friends: [Character]
|
||||
|
||||
"""
|
||||
Which movies they appear in
|
||||
"""
|
||||
appearsIn: [Episode]
|
||||
|
||||
"""
|
||||
All secrets about their past
|
||||
"""
|
||||
secretBackstory: String
|
||||
}
|
||||
|
||||
"""
|
||||
A mechanical creature in the Star Wars universe.
|
||||
"""
|
||||
type Droid implements Character {
|
||||
"""
|
||||
The id of the droid.
|
||||
"""
|
||||
id: ID!
|
||||
|
||||
"""
|
||||
The name of the droid.
|
||||
"""
|
||||
name: String
|
||||
|
||||
"""
|
||||
The friends of the droid, or an empty list if they have none.
|
||||
"""
|
||||
friends: [Character]
|
||||
|
||||
"""
|
||||
Which movies they appear in.
|
||||
"""
|
||||
appearsIn: [Episode]
|
||||
|
||||
"""
|
||||
Construction date and the name of the designer.
|
||||
"""
|
||||
secretBackstory: String
|
||||
|
||||
"""
|
||||
The primary function of the droid.
|
||||
"""
|
||||
primaryFunction: String
|
||||
|
||||
"""
|
||||
Chase color of the droid.
|
||||
"""
|
||||
color: Color
|
||||
}
|
||||
|
||||
# One of the films in the Star Wars Trilogy
|
||||
enum Episode {
|
||||
"""
|
||||
Released in 1977.
|
||||
"""
|
||||
NEWHOPE
|
||||
|
||||
"""
|
||||
Released in 1980.
|
||||
"""
|
||||
EMPIRE
|
||||
|
||||
"""
|
||||
Released in 1983.
|
||||
"""
|
||||
JEDI
|
||||
}
|
||||
|
||||
"""
|
||||
A humanoid creature in the Star Wars universe.
|
||||
"""
|
||||
type Human implements Character {
|
||||
"""
|
||||
The id of the human.
|
||||
"""
|
||||
id: ID!
|
||||
|
||||
"""
|
||||
The name of the human.
|
||||
"""
|
||||
name: String
|
||||
|
||||
"""
|
||||
The friends of the human, or an empty list if they have none.
|
||||
"""
|
||||
friends: [Character]
|
||||
|
||||
"""
|
||||
Which movies they appear in.
|
||||
"""
|
||||
appearsIn: [Episode]
|
||||
|
||||
"""
|
||||
The home planet of the human, or null if unknown.
|
||||
"""
|
||||
homePlanet: String
|
||||
|
||||
"""
|
||||
Where are they from and how they came to be who they are.
|
||||
"""
|
||||
secretBackstory: String
|
||||
}
|
||||
|
||||
enum LengthUnit {
|
||||
METER
|
||||
FEET
|
||||
}
|
||||
|
||||
type Starship {
|
||||
id: ID!
|
||||
name: String!
|
||||
length(unit: LengthUnit = METER): Float
|
||||
}
|
||||
|
||||
union SearchResult = Human | Droid | Starship
|
||||
|
||||
input SearchInput {
|
||||
name: String
|
||||
episode: Episode
|
||||
}
|
||||
|
||||
"""
|
||||
Root Query
|
||||
"""
|
||||
type Query {
|
||||
"""
|
||||
Return the hero by episode.
|
||||
"""
|
||||
hero(
|
||||
"""
|
||||
If omitted, returns the hero of the whole saga. If provided, returns the hero of that particular episode.
|
||||
"""
|
||||
episode: Episode
|
||||
): Character
|
||||
|
||||
"""
|
||||
Return the Human by ID.
|
||||
"""
|
||||
human(
|
||||
"""
|
||||
id of the human
|
||||
"""
|
||||
id: ID!
|
||||
): Human
|
||||
|
||||
"""
|
||||
Return the Droid by ID.
|
||||
"""
|
||||
droid(
|
||||
"""
|
||||
id of the droid
|
||||
"""
|
||||
id: ID!
|
||||
): Droid
|
||||
|
||||
"""
|
||||
Search everything by name
|
||||
|
||||
__NOTE__: You should use Relay pagination
|
||||
"""
|
||||
search(search: SearchInput!): [SearchResult]
|
||||
@deprecated(reason: "`search` will be replaced.")
|
||||
}
|
||||
|
||||
"""
|
||||
Root Mutation
|
||||
"""
|
||||
type Mutation {
|
||||
"""
|
||||
Save the favorite episode.
|
||||
"""
|
||||
favorite(
|
||||
"""
|
||||
Favorite episode.
|
||||
"""
|
||||
episode: Episode!
|
||||
): Episode
|
||||
}
|
||||
|
||||
"""
|
||||
Subscriptions — live events
|
||||
"""
|
||||
type Subscription {
|
||||
"""
|
||||
Message
|
||||
"""
|
||||
message: String
|
||||
}
|
||||
|
||||
extend type Query {
|
||||
"""
|
||||
Dummy query for highlighting test
|
||||
"""
|
||||
dummy(
|
||||
int: Int = 123
|
||||
float: Float = 123.456
|
||||
str: String = "Hello World!"
|
||||
boolDefaultTrue: Boolean = true
|
||||
boolDefaultFalse: Boolean = false
|
||||
id: ID
|
||||
search: SearchInput = null
|
||||
): Boolean
|
||||
}
|
||||
|
||||
schema {
|
||||
query: Query
|
||||
mutation: Mutation
|
||||
subscription: Subscription
|
||||
}
|
||||
|
||||
# GraphQL Query Language
|
||||
|
||||
query dummyQuery($int: Int) {
|
||||
dummy(int: $int)
|
||||
}
|
||||
|
||||
mutation favoriteEpisode($episode: Episode) {
|
||||
favorite(episode: $episode)
|
||||
}
|
||||
# GraphQL Schema Definition Language
|
||||
|
||||
"""
|
||||
Color value
|
||||
"""
|
||||
scalar Color
|
||||
|
||||
"""
|
||||
Node interface
|
||||
|
||||
- allows (re)fetch arbitrary entity only by ID
|
||||
- allows client side cache normalization
|
||||
|
||||
See [Relay Global Object Identification Specification](https://facebook.github.io/relay/graphql/objectidentification.htm)
|
||||
"""
|
||||
interface Node {
|
||||
"""
|
||||
Globally unique identifier,
|
||||
typically `${__typename}:${dbId}`
|
||||
may be encoded in *base64*
|
||||
"""
|
||||
id: ID!
|
||||
}
|
||||
|
||||
"""
|
||||
A character in the Star Wars Trilogy
|
||||
"""
|
||||
interface Character {
|
||||
"""
|
||||
The id of the character.
|
||||
"""
|
||||
id: ID!
|
||||
|
||||
"""
|
||||
The name of the character.
|
||||
"""
|
||||
name: String
|
||||
|
||||
"""
|
||||
The friends of the character, or an empty list if they have none.
|
||||
"""
|
||||
friends: [Character]
|
||||
|
||||
"""
|
||||
Which movies they appear in
|
||||
"""
|
||||
appearsIn: [Episode]
|
||||
|
||||
"""
|
||||
All secrets about their past
|
||||
"""
|
||||
secretBackstory: String
|
||||
}
|
||||
|
||||
"""
|
||||
A mechanical creature in the Star Wars universe.
|
||||
"""
|
||||
type Droid implements Character {
|
||||
"""
|
||||
The id of the droid.
|
||||
"""
|
||||
id: ID!
|
||||
|
||||
"""
|
||||
The name of the droid.
|
||||
"""
|
||||
name: String
|
||||
|
||||
"""
|
||||
The friends of the droid, or an empty list if they have none.
|
||||
"""
|
||||
friends: [Character]
|
||||
|
||||
"""
|
||||
Which movies they appear in.
|
||||
"""
|
||||
appearsIn: [Episode]
|
||||
|
||||
"""
|
||||
Construction date and the name of the designer.
|
||||
"""
|
||||
secretBackstory: String
|
||||
|
||||
"""
|
||||
The primary function of the droid.
|
||||
"""
|
||||
primaryFunction: String
|
||||
|
||||
"""
|
||||
Chase color of the droid.
|
||||
"""
|
||||
color: Color
|
||||
}
|
||||
|
||||
# One of the films in the Star Wars Trilogy
|
||||
enum Episode {
|
||||
"""
|
||||
Released in 1977.
|
||||
"""
|
||||
NEWHOPE
|
||||
|
||||
"""
|
||||
Released in 1980.
|
||||
"""
|
||||
EMPIRE
|
||||
|
||||
"""
|
||||
Released in 1983.
|
||||
"""
|
||||
JEDI
|
||||
}
|
||||
|
||||
"""
|
||||
A humanoid creature in the Star Wars universe.
|
||||
"""
|
||||
type Human implements Character {
|
||||
"""
|
||||
The id of the human.
|
||||
"""
|
||||
id: ID!
|
||||
|
||||
"""
|
||||
The name of the human.
|
||||
"""
|
||||
name: String
|
||||
|
||||
"""
|
||||
The friends of the human, or an empty list if they have none.
|
||||
"""
|
||||
friends: [Character]
|
||||
|
||||
"""
|
||||
Which movies they appear in.
|
||||
"""
|
||||
appearsIn: [Episode]
|
||||
|
||||
"""
|
||||
The home planet of the human, or null if unknown.
|
||||
"""
|
||||
homePlanet: String
|
||||
|
||||
"""
|
||||
Where are they from and how they came to be who they are.
|
||||
"""
|
||||
secretBackstory: String
|
||||
}
|
||||
|
||||
enum LengthUnit {
|
||||
METER
|
||||
FEET
|
||||
}
|
||||
|
||||
type Starship {
|
||||
id: ID!
|
||||
name: String!
|
||||
length(unit: LengthUnit = METER): Float
|
||||
}
|
||||
|
||||
union SearchResult = Human | Droid | Starship
|
||||
|
||||
input SearchInput {
|
||||
name: String
|
||||
episode: Episode
|
||||
}
|
||||
|
||||
"""
|
||||
Root Query
|
||||
"""
|
||||
type Query {
|
||||
"""
|
||||
Return the hero by episode.
|
||||
"""
|
||||
hero(
|
||||
"""
|
||||
If omitted, returns the hero of the whole saga. If provided, returns the hero of that particular episode.
|
||||
"""
|
||||
episode: Episode
|
||||
): Character
|
||||
|
||||
"""
|
||||
Return the Human by ID.
|
||||
"""
|
||||
human(
|
||||
"""
|
||||
id of the human
|
||||
"""
|
||||
id: ID!
|
||||
): Human
|
||||
|
||||
"""
|
||||
Return the Droid by ID.
|
||||
"""
|
||||
droid(
|
||||
"""
|
||||
id of the droid
|
||||
"""
|
||||
id: ID!
|
||||
): Droid
|
||||
|
||||
"""
|
||||
Search everything by name
|
||||
|
||||
__NOTE__: You should use Relay pagination
|
||||
"""
|
||||
search(search: SearchInput!): [SearchResult]
|
||||
@deprecated(reason: "`search` will be replaced.")
|
||||
}
|
||||
|
||||
"""
|
||||
Root Mutation
|
||||
"""
|
||||
type Mutation {
|
||||
"""
|
||||
Save the favorite episode.
|
||||
"""
|
||||
favorite(
|
||||
"""
|
||||
Favorite episode.
|
||||
"""
|
||||
episode: Episode!
|
||||
): Episode
|
||||
}
|
||||
|
||||
"""
|
||||
Subscriptions — live events
|
||||
"""
|
||||
type Subscription {
|
||||
"""
|
||||
Message
|
||||
"""
|
||||
message: String
|
||||
}
|
||||
|
||||
extend type Query {
|
||||
"""
|
||||
Dummy query for highlighting test
|
||||
"""
|
||||
dummy(
|
||||
int: Int = 123
|
||||
float: Float = 123.456
|
||||
str: String = "Hello World!"
|
||||
boolDefaultTrue: Boolean = true
|
||||
boolDefaultFalse: Boolean = false
|
||||
id: ID
|
||||
search: SearchInput = null
|
||||
): Boolean
|
||||
}
|
||||
|
||||
schema {
|
||||
query: Query
|
||||
mutation: Mutation
|
||||
subscription: Subscription
|
||||
}
|
||||
|
||||
# GraphQL Query Language
|
||||
|
||||
query dummyQuery($int: Int) {
|
||||
dummy(int: $int)
|
||||
}
|
||||
|
||||
mutation favoriteEpisode($episode: Episode) {
|
||||
favorite(episode: $episode)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,21 +1,100 @@
|
|||
<!DOCTYPE HTML>
|
||||
<!--
|
||||
Comments are overrated
|
||||
-->
|
||||
<!--Example of comments in HTML-->
|
||||
<html>
|
||||
<head>
|
||||
<!--This is the head section-->
|
||||
<title>HTML Sample</title>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<!--This is the style tag to set style on elements-->
|
||||
<style type="text/css">
|
||||
h1 {
|
||||
color: #CCA3A3;
|
||||
h1
|
||||
{
|
||||
font-family: Tahoma;
|
||||
font-size: 40px;
|
||||
font-weight: normal;
|
||||
margin: 50px;
|
||||
color: #a0a0a0;
|
||||
}
|
||||
|
||||
h2
|
||||
{
|
||||
font-family: Tahoma;
|
||||
font-size: 30px;
|
||||
font-weight: normal;
|
||||
margin: 50px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
p
|
||||
{
|
||||
font-family: Tahoma;
|
||||
font-size: 17px;
|
||||
font-weight: normal;
|
||||
margin: 0px 200px;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
div.Center
|
||||
{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div.Blue
|
||||
{
|
||||
padding: 50px;
|
||||
background-color: #7bd2ff;
|
||||
}
|
||||
|
||||
button.Gray
|
||||
{
|
||||
font-family: Tahoma;
|
||||
font-size: 17px;
|
||||
font-weight: normal;
|
||||
margin-top: 100px;
|
||||
padding: 10px 50px;
|
||||
background-color: #727272;
|
||||
color: #fff;
|
||||
outline: 0;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button.Gray:hover
|
||||
{
|
||||
background-color: #898888;
|
||||
}
|
||||
|
||||
button.Gray:active
|
||||
{
|
||||
background-color: #636161;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<!--This is the script tag-->
|
||||
<script type="text/javascript">
|
||||
window.alert("I am a sample...");
|
||||
function ButtonClick(){
|
||||
// Example of comments in JavaScript
|
||||
window.alert("I'm an alert sample!");
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Heading No.1</h1>
|
||||
<input disabled type="button" value="Click me" />
|
||||
<!--This is the body section-->
|
||||
<div class="Center">
|
||||
<h1>NAME OF SITE</h1>
|
||||
</div>
|
||||
<div class="Center Blue">
|
||||
<h2>I'm h2 Header! Edit me in <h2></h2>
|
||||
<p>
|
||||
I'm a paragraph! Edit me in <p>
|
||||
to add your own content and make changes to the style and font.
|
||||
It's easy! Just change the text between <p> ... </p> and change the style in <style>.
|
||||
You can make it as long as you wish. The browser will automatically wrap the lines to accommodate the
|
||||
size of the browser window.
|
||||
</p>
|
||||
<button class="Gray" onclick="ButtonClick()">Click Me!</button>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -1,14 +1,54 @@
|
|||
import java.util.ArrayList;
|
||||
import org.junit.Test;
|
||||
/*
|
||||
Basic Java example using FizzBuzz
|
||||
*/
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class Example {
|
||||
@Test
|
||||
public void method() {
|
||||
org.junit.Assert.assertTrue( "isEmpty", new ArrayList<Integer>().isEmpty());
|
||||
}
|
||||
|
||||
@Test(timeout=100) public void infinity() {
|
||||
while(true);
|
||||
}
|
||||
}
|
||||
public static void main (String[] args){
|
||||
// Generate a random number between 1-100. (See generateRandomNumber method.)
|
||||
int random = generateRandomNumber(100);
|
||||
|
||||
// Output generated number.
|
||||
System.out.println("Generated number: " + random + "\n");
|
||||
|
||||
// Loop between 1 and the number we just generated.
|
||||
for (int i=1; i<=random; i++){
|
||||
// If i is divisible by both 3 and 5, output "FizzBuzz".
|
||||
if (i % 3 == 0 && i % 5 == 0){
|
||||
System.out.println("FizzBuzz");
|
||||
}
|
||||
// If i is divisible by 3, output "Fizz"
|
||||
else if (i % 3 == 0){
|
||||
System.out.println("Fizz");
|
||||
}
|
||||
// If i is divisible by 5, output "Buzz".
|
||||
else if (i % 5 == 0){
|
||||
System.out.println("Buzz");
|
||||
}
|
||||
// If i is not divisible by either 3 or 5, output the number.
|
||||
else {
|
||||
System.out.println(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Generates a new random number between 0 and 100.
|
||||
@param bound The highest number that should be generated.
|
||||
@return An integer representing a randomly generated number between 0 and 100.
|
||||
*/
|
||||
private static int generateRandomNumber(int bound){
|
||||
// Create new Random generator object and generate the random number.
|
||||
Random randGen = new Random();
|
||||
int randomNum = randGen.nextInt(bound);
|
||||
|
||||
// If the random number generated is zero, use recursion to regenerate the number until it is not zero.
|
||||
if (randomNum < 1){
|
||||
randomNum = generateRandomNumber(bound);
|
||||
}
|
||||
|
||||
return randomNum;
|
||||
}
|
||||
}
|
||||
|
||||
23
website/index/samples/sample.julia.txt
Normal file
23
website/index/samples/sample.julia.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# good style
|
||||
function fixedpointmap(f; iv, tolerance=1E-7, maxiter=1000)
|
||||
# setup the algorithm
|
||||
x_old = iv
|
||||
normdiff = Inf
|
||||
iter = 1
|
||||
while normdiff > tolerance && iter <= maxiter
|
||||
x_new = f(x_old) # use the passed in map
|
||||
normdiff = norm(x_new - x_old)
|
||||
x_old = x_new
|
||||
iter = iter + 1
|
||||
end
|
||||
return (value = x_old, normdiff=normdiff, iter=iter) # A named tuple
|
||||
end
|
||||
|
||||
# define a map and parameters
|
||||
p = 1.0
|
||||
β = 0.9
|
||||
f(v) = p + β * v # note that p and β are used in the function!
|
||||
|
||||
sol = fixedpointmap(f, iv=0.8, tolerance=1.0E-8) # don't need to pass
|
||||
println("Fixed point = $(sol.value), and |f(x) - x| = $(sol.normdiff) in $(sol.iter)"*
|
||||
" iterations")
|
||||
21
website/index/samples/sample.lex.txt
Normal file
21
website/index/samples/sample.lex.txt
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
LEX Paid Escrow.
|
||||
LEXON: 0.2.20
|
||||
COMMENT: 3.f - an escrow that is controlled by a third party for a fee.
|
||||
|
||||
“Payer” is a person.
|
||||
“Payee” is a person.
|
||||
“Arbiter” is a person.
|
||||
“Fee” is an amount.
|
||||
|
||||
The Payer pays an Amount into escrow,
|
||||
appoints the Payee,
|
||||
appoints the Arbiter,
|
||||
and also fixes the Fee.
|
||||
|
||||
CLAUSE: Pay Out.
|
||||
The Arbiter may pay from escrow the Fee to themselves,
|
||||
and afterwards pay the remainder of the escrow to the Payee.
|
||||
|
||||
CLAUSE: Pay Back.
|
||||
The Arbiter may pay from escrow the Fee to themselves,
|
||||
and afterwards return the remainder of the escrow to the Payer.
|
||||
|
|
@ -4,6 +4,13 @@
|
|||
## Markdown plus h2 with a custom ID ## {#id-goes-here}
|
||||
[Link back to H2](#id-goes-here)
|
||||
|
||||
```js
|
||||
var x = "string";
|
||||
function f() {
|
||||
return x;
|
||||
}
|
||||
```
|
||||
|
||||
<!-- html madness -->
|
||||
<div class="custom-class" markdown="1">
|
||||
<div>
|
||||
|
|
@ -23,12 +30,12 @@
|
|||
- Another one
|
||||
+ Another one
|
||||
|
||||
This is a paragraph, which is text surrounded by
|
||||
whitespace. Paragraphs can be on one
|
||||
line (or many), and can drone on for hours.
|
||||
This is a paragraph, which is text surrounded by
|
||||
whitespace. Paragraphs can be on one
|
||||
line (or many), and can drone on for hours.
|
||||
|
||||
Now some inline markup like _italics_, **bold**,
|
||||
and `code()`. Note that underscores
|
||||
Now some inline markup like _italics_, **bold**,
|
||||
and `code()`. Note that underscores
|
||||
in_words_are ignored.
|
||||
|
||||
````application/json
|
||||
|
|
@ -57,11 +64,11 @@ if (this_is_more_code == true && !indented) {
|
|||
}
|
||||
~~~
|
||||
|
||||
Text with
|
||||
two trailing spaces
|
||||
(on the right)
|
||||
can be used
|
||||
for things like poems
|
||||
Text with
|
||||
two trailing spaces
|
||||
(on the right)
|
||||
can be used
|
||||
for things like poems
|
||||
|
||||
### Horizontal rules
|
||||
|
||||
|
|
@ -69,7 +76,7 @@ for things like poems
|
|||
****
|
||||
--------------------------
|
||||
|
||||

|
||||

|
||||
|
||||
## Markdown plus tables ##
|
||||
|
||||
|
|
|
|||
13
website/index/samples/sample.mips.txt
Normal file
13
website/index/samples/sample.mips.txt
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# A[i] = A[i/2] + 1;
|
||||
lw $t0, 0($gp) # fetch i
|
||||
srl $t1, $t0, 1 # i/2
|
||||
sll $t1, $t1, 2 # turn i/2 into a byte offset (*4)
|
||||
add $t1, $gp, $t1 # &A[i/2] - 28
|
||||
lw $t1, 28($t1) # fetch A[i/2]
|
||||
addi $t1, $t1, 1 # A[i/2] + 1
|
||||
sll $t2, $t0, 2 # turn i into a byte offset
|
||||
add $t2, $t2, $gp # &A[i] - 28
|
||||
sw $t1, 28($t2) # A[i] = ...
|
||||
# A[i+1] = -1;
|
||||
addi $t1, $zero, -1 # -1
|
||||
sw $t1, 32($t2) # A[i+1] = -1
|
||||
|
|
@ -25,4 +25,4 @@ begin
|
|||
on E: Exception do
|
||||
Writeln(E.ClassName, ': ', E.Message);
|
||||
end;
|
||||
end.
|
||||
end.
|
||||
|
|
|
|||
20
website/index/samples/sample.pascaligo.txt
Normal file
20
website/index/samples/sample.pascaligo.txt
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
type storage is int
|
||||
type parameter is
|
||||
Increment of int
|
||||
| Decrement of int
|
||||
| Reset
|
||||
type return is list (operation) * storage
|
||||
// Two entrypoints
|
||||
function add (const store : storage; const delta : int) : storage is
|
||||
store + delta
|
||||
function sub (const store : storage; const delta : int) : storage is
|
||||
store - delta
|
||||
(* Main access point that dispatches to the entrypoints according to
|
||||
the smart contract parameter. *)
|
||||
function main (const action : parameter; const store : storage) : return is
|
||||
((nil : list (operation)), // No operations
|
||||
case action of
|
||||
Increment (n) -> add (store, n)
|
||||
| Decrement (n) -> sub (store, n)
|
||||
| Reset -> 0
|
||||
end)
|
||||
26
website/index/samples/sample.restructuredtext.txt
Normal file
26
website/index/samples/sample.restructuredtext.txt
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
=================
|
||||
My Project Readme
|
||||
=================
|
||||
-------------------------
|
||||
Clever subtitle goes here
|
||||
-------------------------
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
This is an example reStructuredText document that starts at the very top
|
||||
with a title and a sub-title. There is one primary header, Introduction.
|
||||
There is one example subheading below.
|
||||
The document is just plain text so it is easily readable even before
|
||||
being converted to HTML, man page, PDF or other formats.
|
||||
|
||||
Subheading
|
||||
----------
|
||||
|
||||
The basic syntax is not that different from Markdown, but it also
|
||||
has many more powerful features that Markdown doesn't have. We aren't
|
||||
taking advantage of those yet though.
|
||||
|
||||
- Bullet points
|
||||
- Are intuitive
|
||||
- And simple too
|
||||
53
website/index/samples/sample.scala.txt
Normal file
53
website/index/samples/sample.scala.txt
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
package examples
|
||||
|
||||
/** Quick sort, imperative style */
|
||||
object sort {
|
||||
|
||||
/** Nested methods can use and even update everything
|
||||
* visible in their scope (including local variables or
|
||||
* arguments of enclosing methods).
|
||||
*/
|
||||
def sort(a: Array[Int]) {
|
||||
|
||||
def swap(i: Int, j: Int) {
|
||||
val t = a(i); a(i) = a(j); a(j) = t
|
||||
}
|
||||
|
||||
def sort1(l: Int, r: Int) {
|
||||
val pivot = a((l + r) / 2)
|
||||
var i = l
|
||||
var j = r
|
||||
while (i <= j) {
|
||||
while (a(i) < pivot) i += 1
|
||||
while (a(j) > pivot) j -= 1
|
||||
if (i <= j) {
|
||||
swap(i, j)
|
||||
i += 1
|
||||
j -= 1
|
||||
}
|
||||
}
|
||||
if (l < j) sort1(l, j)
|
||||
if (j < r) sort1(i, r)
|
||||
}
|
||||
|
||||
if (a.length > 0)
|
||||
sort1(0, a.length - 1)
|
||||
}
|
||||
|
||||
def println(ar: Array[Int]) {
|
||||
def print1 = {
|
||||
def iter(i: Int): String =
|
||||
ar(i) + (if (i < ar.length-1) "," + iter(i+1) else "")
|
||||
if (ar.length == 0) "" else iter(0)
|
||||
}
|
||||
Console.println("[" + print1 + "]")
|
||||
}
|
||||
|
||||
def main(args: Array[String]) {
|
||||
val ar = Array(6, 2, 8, 5, 1)
|
||||
println(ar)
|
||||
sort(ar)
|
||||
println(ar)
|
||||
}
|
||||
|
||||
}
|
||||
28
website/index/samples/sample.systemverilog.txt
Normal file
28
website/index/samples/sample.systemverilog.txt
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
// File : tb_top.sv
|
||||
module tb_top ();
|
||||
|
||||
reg clk;
|
||||
reg resetn;
|
||||
reg d;
|
||||
wire q;
|
||||
|
||||
// Instantiate the design
|
||||
d_ff d_ff0 ( .clk (clk),
|
||||
.resetn (resetn),
|
||||
.d (d),
|
||||
.q (q));
|
||||
|
||||
// Create a clock
|
||||
always #10 clk <= ~clk;
|
||||
|
||||
initial begin
|
||||
resetn <= 0;
|
||||
d <= 0;
|
||||
|
||||
#10 resetn <= 1;
|
||||
#5 d <= 1;
|
||||
#8 d <= 0;
|
||||
#2 d <= 1;
|
||||
#10 d <= 0;
|
||||
end
|
||||
endmodule
|
||||
18
website/index/samples/sample.tcl.txt
Normal file
18
website/index/samples/sample.tcl.txt
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
proc find {{basedir .} {filterScript {}}} {
|
||||
set oldwd [pwd]
|
||||
cd $basedir
|
||||
set cwd [pwd]
|
||||
set filenames [glob -nocomplain * .*]
|
||||
set files {}
|
||||
set filt [string length $filterScript]
|
||||
foreach filename $filenames {
|
||||
if {!$filt || [eval $filterScript [list $filename]]} {
|
||||
lappend files [file join $cwd $filename]
|
||||
}
|
||||
if {[file isdirectory $filename]} {
|
||||
set files [concat $files [find $filename $filterScript]]
|
||||
}
|
||||
}
|
||||
cd $oldwd
|
||||
return $files
|
||||
}
|
||||
12
website/index/samples/sample.twig.txt
Normal file
12
website/index/samples/sample.twig.txt
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>{% block title %}Welcome!{% endblock %}</title>
|
||||
{% block stylesheets %}{% endblock %}
|
||||
</head>
|
||||
<body>
|
||||
{% block body %}{% endblock %}
|
||||
{% block javascripts %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -2,21 +2,21 @@
|
|||
* Implemented in TypeScript
|
||||
* To learn more about TypeScript, please visit http://www.typescriptlang.org/
|
||||
*/
|
||||
|
||||
module Conway {
|
||||
|
||||
namespace Conway {
|
||||
|
||||
export class Cell {
|
||||
public row: number;
|
||||
public col: number;
|
||||
public live: boolean;
|
||||
|
||||
|
||||
constructor(row: number, col: number, live: boolean) {
|
||||
this.row = row;
|
||||
this.col = col;
|
||||
this.live = live
|
||||
this.live = live;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export class GameOfLife {
|
||||
private gridSize: number;
|
||||
private canvasSize: number;
|
||||
|
|
@ -28,8 +28,8 @@ module Conway {
|
|||
private cellSize: number;
|
||||
private context: CanvasRenderingContext2D;
|
||||
private world;
|
||||
|
||||
|
||||
|
||||
|
||||
constructor() {
|
||||
this.gridSize = 50;
|
||||
this.canvasSize = 600;
|
||||
|
|
@ -42,14 +42,14 @@ module Conway {
|
|||
this.world = this.createWorld();
|
||||
this.circleOfLife();
|
||||
}
|
||||
|
||||
|
||||
public createWorld() {
|
||||
return this.travelWorld( (cell : Cell) => {
|
||||
cell.live = Math.random() < this.initialLifeProbability;
|
||||
return cell;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public circleOfLife() : void {
|
||||
this.world = this.travelWorld( (cell: Cell) => {
|
||||
cell = this.world[cell.row][cell.col];
|
||||
|
|
@ -57,8 +57,8 @@ module Conway {
|
|||
return this.resolveNextGeneration(cell);
|
||||
});
|
||||
setTimeout( () => {this.circleOfLife()}, this.animationRate);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public resolveNextGeneration(cell : Cell) {
|
||||
var count = this.countNeighbors(cell);
|
||||
var newCell = new Cell(cell.row, cell.col, cell.live);
|
||||
|
|
@ -66,7 +66,7 @@ module Conway {
|
|||
else if(count == 3) newCell.live = true;
|
||||
return newCell;
|
||||
}
|
||||
|
||||
|
||||
public countNeighbors(cell : Cell) {
|
||||
var neighbors = 0;
|
||||
for(var row = -1; row <=1; row++) {
|
||||
|
|
@ -79,12 +79,12 @@ module Conway {
|
|||
}
|
||||
return neighbors;
|
||||
}
|
||||
|
||||
|
||||
public isAlive(row : number, col : number) {
|
||||
if(row < 0 || col < 0 || row >= this.gridSize || col >= this.gridSize) return false;
|
||||
return this.world[row][col].live;
|
||||
}
|
||||
|
||||
|
||||
public travelWorld(callback) {
|
||||
var result = [];
|
||||
for(var row = 0; row < this.gridSize; row++) {
|
||||
|
|
@ -93,20 +93,20 @@ module Conway {
|
|||
rowData.push(callback(new Cell(row, col, false)));
|
||||
}
|
||||
result.push(rowData);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
public draw(cell : Cell) {
|
||||
if(this.context == null) this.context = this.createDrawingContext();
|
||||
if(this.cellSize == 0) this.cellSize = this.canvasSize/this.gridSize;
|
||||
|
||||
|
||||
this.context.strokeStyle = this.lineColor;
|
||||
this.context.strokeRect(cell.row * this.cellSize, cell.col*this.cellSize, this.cellSize, this.cellSize);
|
||||
this.context.fillStyle = cell.live ? this.liveColor : this.deadColor;
|
||||
this.context.fillRect(cell.row * this.cellSize, cell.col*this.cellSize, this.cellSize, this.cellSize);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public createDrawingContext() {
|
||||
var canvas = <HTMLCanvasElement> document.getElementById('conway-canvas');
|
||||
if(canvas == null) {
|
||||
|
|
|
|||
35
website/index/samples/sample.verilog.txt
Normal file
35
website/index/samples/sample.verilog.txt
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
`include "first_counter.v"
|
||||
module first_counter_tb();
|
||||
// Declare inputs as regs and outputs as wires
|
||||
reg clock, reset, enable;
|
||||
wire [3:0] counter_out;
|
||||
|
||||
// Initialize all variables
|
||||
initial begin
|
||||
$display ("time\t clk reset enable counter");
|
||||
$monitor ("%g\t %b %b %b %b",
|
||||
$time, clock, reset, enable, counter_out);
|
||||
clock = 1; // initial value of clock
|
||||
reset = 0; // initial value of reset
|
||||
enable = 0; // initial value of enable
|
||||
#5 reset = 1; // Assert the reset
|
||||
#10 reset = 0; // De-assert the reset
|
||||
#10 enable = 1; // Assert enable
|
||||
#100 enable = 0; // De-assert enable
|
||||
#5 $finish; // Terminate simulation
|
||||
end
|
||||
|
||||
// Clock generator
|
||||
always begin
|
||||
#5 clock = ~clock; // Toggle clock every 5 ticks
|
||||
end
|
||||
|
||||
// Connect DUT to test bench
|
||||
first_counter U_counter (
|
||||
clock,
|
||||
reset,
|
||||
enable,
|
||||
counter_out
|
||||
);
|
||||
|
||||
endmodule
|
||||
Loading…
Add table
Add a link
Reference in a new issue