Skip to content

Instantly share code, notes, and snippets.

View flyx's full-sized avatar

Felix Krause flyx

View GitHub Profile
generic
-- defines maximum depth of tree
type Node_Level is <>;
package Tree is
-- it's a binary tree. for now.
type Tree_Direction is (Left, Right);
type Direction_Array is array (Node_Level range <>) of Tree_Direction;
with Ada.Containers.Hashed_Maps;
with Interfaces.C;
package Example is
type UInt is new Interfaces.C.unsigned;
type Whatever is new Integer;
function Hash (Key : UInt) return Ada.Containers.Hash_Type;
package My_Maps is new Ada.Containers.Hashed_Maps (
@flyx
flyx / test.php
Created April 9, 2012 14:58
PHP doesn't care about array index ordering (expected output: "hurrdurrwarbl"; actual output: "hurrwarbldurr")
<?php
$arr = array();
$arr[0] = "hurr";
$arr[2] = "warbl";
$arr[1] = "durr";
foreach($arr as $item) {
echo $item;
}
?>
@flyx
flyx / foo.adb
Created May 3, 2012 20:20
Example package where a "protected" scope would be nice
package Foo is
type A is abstract tagged null record;
-- some functionality A provides
procedure Bar (Object : A);
-- some part of this functionality that depends
-- on the specific child-classes of A
-- this function should not be visible to other
-- packages, but it has to be visible to packages
@flyx
flyx / bla.adelheid
Created May 7, 2012 19:45
Quelltext der imaginäre Programmiersprache Adelheid 2005
Paket Eigenheim ist
Sorte Geschirr ist Stapel (Positiver Bereich <>) von Teller;
Paket Tellerhaufen ist neuer Haufen mit (Gegenstand => Teller);
Aufgabe Küche_Machen ist
Einsprungspunkt Dreckiges_Geschirr_Kommt (Dreckiges_Geschirr : Geschirr);
Ende von Küche_Machen;
with Ada.Text_IO;
with Ada.Numerics.Discrete_Random;
procedure Test is
subtype Random_Range is Integer range -10 .. 10;
package Random_X is new Ada.Numerics.Discrete_Random(Random_Range);
use Random_X;
Gen : Generator;
begin
loop
function Calculate_Size return Natural;
-- illegal because call to Calculate_Size is non-static
Size : constant := Calculate_Size;
-- requires Size to be a static constant.
type Some_Type is mod 2 ** Size;
@flyx
flyx / test.adb
Created August 21, 2012 18:50
Trying to use Ada 2012 features
with Ada.Text_IO;
procedure Test is
type Int_Array is array (1 .. 64) of aliased Integer;
subtype Index is Integer range 1 .. 4;
type Ref_Element (Data : not null access Integer) is limited null record
with Implicit_Dereference => Data;
@flyx
flyx / gist:3826404
Created October 3, 2012 11:04
problems with Ada syntax highlighting and indentation handling
with Ada.Finalization; -- package import
generic -- indent++
Foo : Integer;
package Bar is -- indend--; indent++
package Child is -- indend++
type T is new Ada.Finalization.Controlled
with null record; -- NO package import
end Child; -- indend--
@flyx
flyx / gist:3826729
Created October 3, 2012 12:43
passing struct from Ada to OpenCL C
// kernel
typedef struct {
int2 offset;
int2 center;
} viewport;
kernel void renderkernel(viewport vp) {
// just accessing the struct crashes
int a = vp.offset;