File Coverage

File:blib/lib/Inline/Nouse.pm
Coverage:27.6%

linestmtbrancondsubtimecode
1package Inline::Nouse;
2
3$VERSION = '0.03';
4
5require Inline;
6require Inline::Interp;
7require Language::Nouse;
8
9@ISA = qw(Inline Inline::Interp);
10
11
1
1
1
4
2
7
use strict;
12
1
1
1
6
2
7
use Carp;
13
14my $g_io;
15
16sub register {
17        return {
18
0
                language => 'nouse',
19                aliases => ['Nouse', 'nouse'],
20                type => 'interpreted',
21                suffix => 'ns',
22        };
23}
24
25sub do_load {
26
0
        my ($funcs, $code) = @_;
27
28
0
        while($code =~ m/function(\s+)([a-z0-9_]+)(\s*){(.*?)}/isg){
29
0
                Inline::Interp::add_func($funcs, $2, $4);
30        }
31}
32
33sub load {
34
0
        Inline::Interp::load(@_);
35}
36
37sub get_char {
38
0
        return Inline::Interp::input_char($g_io);
39}
40
41sub put_char {
42
0
        my ($out) = @_;
43
0
        Inline::Interp::output_char($g_io, $out);
44}
45
46sub do_run {
47
0
        my ($code, $io) = @_;
48
49
0
        $g_io = $io;
50
51
0
        my $interp = new Language::Nouse;
52
0
        $interp->load_linenoise($code);
53
0
        $interp->set_get(\&get_char);
54
0
        $interp->set_put(\&put_char);
55
56
0
        $interp->run();
57}
58
591;
60