progs/lexer/toks.scala.orig
changeset 729 b147a10be8dd
parent 728 c669b39debe3
child 730 18fee9d3b6a8
--- a/progs/lexer/toks.scala.orig	Mon Jun 29 22:19:05 2020 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-abstract class Token
-case object T_SEMI extends Token
-case object T_LPAREN extends Token
-case object T_RPAREN extends Token
-case class T_ID(s: String) extends Token
-case class T_OP(s: String) extends Token
-case class T_NUM(n: Int) extends Token
-case class T_KWD(s: String) extends Token
-case class T_STR(s: String) extends Token
-
-
-// Loops program
-//===============
-
-/*
-start := 1000; 
-x := start;
-y := start;
-z := start;
-while 0 < x do {
- while 0 < y do {
-  while 0 < z do { z := z - 1 };
-  z := start;
-  y := y - 1
- };     
- y := start;
- x := x - 1
-}
-*/
-
-val loops =
-  List(T_ID("start"), T_OP(":="), T_NUM(1000), T_SEMI, T_ID("x"), T_OP(":="), 
-       T_ID("start"), T_SEMI, T_ID("y"), T_OP(":="), T_ID("start"), T_SEMI, 
-       T_ID("z"), T_OP(":="), T_ID("start"), T_SEMI, T_KWD("while"), T_NUM(0), 
-       T_OP("<"), T_ID("x"), T_KWD("do"), T_LPAREN, T_KWD("while"), T_NUM(0), 
-       T_OP("<"), T_ID("y"), T_KWD("do"), T_LPAREN, T_KWD("while"), T_NUM(0), 
-       T_OP("<"), T_ID("z"), T_KWD("do"), T_LPAREN, T_ID("z"), T_OP(":="), 
-       T_ID("z"), T_OP("-"), T_NUM(1), T_RPAREN, T_SEMI, T_ID("z"), T_OP(":="),
-       T_ID("start"), T_SEMI, T_ID("y"), T_OP(":="), T_ID("y"), T_OP("-"), 
-       T_NUM(1), T_RPAREN, T_SEMI, T_ID("y"), T_OP(":="), T_ID("start"), 
-       T_SEMI, T_ID("x"), T_OP(":="), T_ID("x"), T_OP("-"), T_NUM(1), T_RPAREN) 
-
-
-
-
-// Fib program
-//=============
-
-/*
-write "Fib";
-read n;  
-minus1 := 0;
-minus2 := 1;
-while n > 0 do {
-       temp := minus2;
-       minus2 := minus1 + minus2;
-       minus1 := temp;
-       n := n - 1
-};
-write "Result";
-write minus2
-*/
-
-val fib =
-  List(T_KWD("write"), T_STR("Fib"), T_SEMI, T_KWD("read"), T_ID("n"), 
-       T_SEMI, T_ID("minus1"), T_OP(":="), T_NUM(0), T_SEMI, T_ID("minus2"), 
-       T_OP(":="), T_NUM(1), T_SEMI, T_KWD("while"), T_ID("n"), T_OP(">"), 
-       T_NUM(0), T_KWD("do"), T_LPAREN, T_ID("temp"), T_OP(":="), 
-       T_ID("minus2"), T_SEMI, T_ID("minus2"), T_OP(":="), T_ID("minus1"), 
-       T_OP("+"), T_ID("minus2"), T_SEMI, T_ID("minus1"), T_OP(":="), 
-       T_ID("temp"), T_SEMI, T_ID("n"), T_OP(":="), T_ID("n"), T_OP("-"), 
-       T_NUM(1), T_RPAREN, T_SEMI, T_KWD("write"), T_STR("Result"), T_SEMI, 
-       T_KWD("write"), T_ID("minus2"))
-
-
-
-// Factors program
-//=================
-
-/*
-write "Input n please";
-read n;
-write "The factors of n are";
-f := 2;
-while n != 1 do {
-    while (n / f) * f == n do {
-        write f;
-        n := n / f
-    };
-    f := f + 1
-}
-*/
-
-val factors = 
-  List(T_KWD("write"), T_STR("Input n please"), T_SEMI, T_KWD("read"), 
-       T_ID("n"), T_SEMI, T_KWD("write"), T_STR("The factors of n are"), 
-       T_SEMI, T_ID("f"), T_OP(":="), T_NUM(2), T_SEMI, T_KWD("while"), 
-       T_ID("n"), T_OP("!="), T_NUM(1), T_KWD("do"), T_LPAREN, 
-       T_KWD("while"), T_ID("n"), T_OP("/"), T_ID("f"), T_OP("*"), 
-       T_ID("f"), T_OP("=="), T_ID("n"), T_KWD("do"), T_LPAREN, 
-       T_KWD("write"), T_ID("f"), T_SEMI, T_ID("n"), T_OP(":="), 
-       T_ID("n"), T_OP("/"), T_ID("f"), T_RPAREN, T_SEMI, T_ID("f"), 
-       T_OP(":="), T_ID("f"), T_OP("+"), T_NUM(1), T_RPAREN)
-
-
-// Primes program
-//================
-
-/*
-end := 100;
-n := 2;
-while (n < end) do {
-  f := 2;
-  tmp := 0;
-  while ((f < n / 2 + 1) && (tmp == 0)) do {
-    if ((n / f) * f == n) then  { tmp := 1 } else { skip };
-    f := f + 1
-  };
-  if (tmp == 0) then { write(n) } else { skip };
-  n  := n + 1
-}
-*/
-
-val primes =
-  List(T_ID("end"), T_OP(":="), T_NUM(100), T_SEMI, T_ID("n"), T_OP(":="), 
-       T_NUM(2), T_SEMI, T_KWD("while"), T_ID("n"), T_OP("<"), T_ID("end"), 
-       T_KWD("do"), T_LPAREN, T_ID("f"), T_OP(":="), T_NUM(2), T_SEMI, 
-       T_ID("tmp"), T_OP(":="), T_NUM(0), T_SEMI, T_KWD("while"), T_ID("f"), 
-       T_OP("<"), T_ID("n"), T_OP("/"), T_NUM(2), T_OP("+"), T_NUM(1), 
-       T_OP("&&"), T_ID("tmp"), T_OP("=="), T_NUM(0), T_KWD("do"), T_LPAREN, 
-       T_KWD("if"), T_ID("n"), T_OP("/"), T_ID("f"), T_OP("*"), T_ID("f"), 
-       T_OP("=="), T_ID("n"), T_KWD("then"), T_LPAREN, T_ID("tmp"), T_OP(":="),
-       T_NUM(1), T_RPAREN, T_KWD("else"), T_LPAREN, T_KWD("skip"), T_RPAREN, 
-       T_SEMI, T_ID("f"), T_OP(":="), T_ID("f"), T_OP("+"), T_NUM(1), 
-       T_RPAREN, T_SEMI, T_KWD("if"), T_ID("tmp"), T_OP("=="), T_NUM(0), 
-       T_KWD("then"), T_LPAREN, T_KWD("write"), T_ID("n"), T_RPAREN, 
-       T_KWD("else"), T_LPAREN, T_KWD("skip"), T_RPAREN, T_SEMI, T_ID("n"), 
-       T_OP(":="), T_ID("n"), T_OP("+"), T_NUM(1), T_RPAREN)