I hereby claim:
- I am vrotaru on github.
- I am vrotaru (https://keybase.io/vrotaru) on keybase.
- I have a public key ASAuaOcLxLWR2FtMDOTotdYXZxyxrpTdPKm-Pi3uiTavOAo
To claim this, I am signing this object:
diff --git a/src/gText.mli b/src/gText.mli | |
index 455b90b3..a29f8d07 100644 | |
--- a/src/gText.mli | |
+++ b/src/gText.mli | |
@@ -491,14 +491,12 @@ object ('a) | |
method populate_popup : | |
callback:(menu obj -> unit) -> GtkSignal.id | |
method set_anchor : callback:(unit -> unit) -> GtkSignal.id | |
- method set_scroll_adjustments : | |
- callback:(GData.adjustment option -> GData.adjustment option -> unit) |
open GObj | |
(* Draw text left, centre or right justified at point. (x,y) point is | |
* either top left, top middle or top right of text. | |
*) | |
let draw_text drawable font_description position (x, y) text : unit = | |
let context = Gdk.Screen.get_pango_context () in | |
let layout = Pango.Layout.create context in | |
let () = Pango.Layout.set_font_description layout font_description in | |
let () = Pango.Layout.set_text layout text in |
I hereby claim:
To claim this, I am signing this object:
trait A | |
case object a extends A | |
case object b extends A | |
trait B | |
case object x extends B | |
case object y extends B |
<!DOCTYPE HTML> | |
<html lang="en-US"> | |
<head> | |
<meta charset="UTF-8"> | |
<title>Easy JavaScript Testing></title> | |
<style> | |
.pass:before { | |
content: 'PASS: '; | |
color: blue; | |
font-weight: bold; |
#! /bin/bash | |
SRC=/dev/urandom | |
len=${1-12} | |
i=1 | |
while (( $i <= len )); do | |
if (( ($i + 1) % 3 == 0 )) ; then | |
cat $SRC | base64 | tr -dc aeiouy | head -c1 |
let char_0 = Char.code '0' | |
let split n s = | |
let len_s = String.length s in | |
let res = Array.make n 0 in | |
let rec slide pos = | |
if pos < len_s && s.[pos] <> ' ' then | |
pos + 1 |> slide | |
else pos |
The goal of this exercise it to have a minimal parser which will parse expressions as the ML languages do.
Namely to have function application to have the highest priority. The key to this seems to have a minimal set of productions
in the base
rule. The app
rule defines that application groups to the left.
The type expr
from Syntax
module has the following interpretation: Int
-s are numbers,
Fn
-s are predefined function names and App
and Plus
have the obvious and natural meaning.
A way to test it is to run mehnir --interpret --interpret-show-cst parser.mly
type _ ty = | |
| TBool : bool ty | |
| TInt : int ty | |
type _ value = | |
| Bool : bool -> bool value | |
| Int : int -> int value | |
type _ expr = | |
| Value : 'a value -> 'a expr |
type _ ty = | |
| TBool : bool ty | |
| TInt : int ty | |
type _ value = | |
| Bool : bool -> bool value | |
| Int : int -> int value | |
type _ expr = | |
| Value : 'a value -> 'a expr |