~martin-decky/helenos/rcu

« back to all changes in this revision

Viewing changes to uspace/dist/src/sysel/demos/autobox.sy

  • Committer: Jiri Svoboda
  • Date: 2010-04-23 23:09:56 UTC
  • mfrom: (301.1.22 sysel)
  • Revision ID: jiri@wiwaxia-20100423230956-qlvja3q8qfwgnmnw
Merge from lp:~jsvoboda/helenos/sysel. New: generic classes, autoboxing, delegates.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--
 
2
-- Copyright (c) 2010 Jiri Svoboda
 
3
-- All rights reserved.
 
4
--
 
5
-- Redistribution and use in source and binary forms, with or without
 
6
-- modification, are permitted provided that the following conditions
 
7
-- are met:
 
8
--
 
9
-- o Redistributions of source code must retain the above copyright
 
10
--   notice, this list of conditions and the following disclaimer.
 
11
-- o Redistributions in binary form must reproduce the above copyright
 
12
--   notice, this list of conditions and the following disclaimer in the
 
13
--   documentation and/or other materials provided with the distribution.
 
14
-- o The name of the author may not be used to endorse or promote products
 
15
--   derived from this software without specific prior written permission.
 
16
--
 
17
-- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 
18
-- IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 
19
-- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 
20
-- IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 
21
-- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 
22
-- NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 
23
-- DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 
24
-- THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
25
-- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 
26
-- THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
27
--
 
28
 
 
29
class AutoboxingDemo is
 
30
        fun Main() is
 
31
                var b : Bool;
 
32
                var c : Char;
 
33
                var i : Int;
 
34
                var s : String;
 
35
 
 
36
                --
 
37
                -- Automatic conversion of each primitive type to the
 
38
                -- respective boxed type.
 
39
                --
 
40
                b = true;
 
41
                Builtin.WriteLine(b.Value);
 
42
                c = 'a';
 
43
                Builtin.WriteLine(c.Value);
 
44
                i = 1;
 
45
                Builtin.WriteLine(i.Value);
 
46
                s = "Hello";
 
47
                Builtin.WriteLine(s.Value);
 
48
 
 
49
                -- Anything can be converted to Object.
 
50
                foo(b, c, i, s);
 
51
        end
 
52
 
 
53
        fun foo(args : Object[], packed) is
 
54
        end
 
55
end