File Coverage

blib/lib/Lingy/AST.pm
Criterion Covered Total %
statement 57 57 100.0
branch n/a
condition n/a
subroutine 19 19 100.0
pod n/a
total 76 76 100.0


line stmt bran cond sub pod time code
1             #------------------------------------------------------------------------------
2             package Lingy::AST;
3 1     1   899 use Lingy::Base;
  1         3  
  1         5  
4              
5             #------------------------------------------------------------------------------
6             package Lingy::Module;
7 1     1   6 use Lingy::Base;
  1         2  
  1         5  
8              
9             has class => [];
10              
11             #------------------------------------------------------------------------------
12             package Lingy::Class;
13 1     1   6 use Lingy::Base;
  1         2  
  1         3  
14              
15             has name => ();
16             has namespace => ();
17              
18             #------------------------------------------------------------------------------
19             package Lingy::Stash;
20 1     1   5 use Lingy::Base;
  1         2  
  1         14  
21              
22             has namespace => {};
23              
24             #------------------------------------------------------------------------------
25             package Lingy::Function;
26 1     1   5 use Lingy::Base;
  1         2  
  1         3  
27              
28             has name => ();
29             has signature => {};
30             has namespace => {};
31             has statement => [];
32              
33             #------------------------------------------------------------------------------
34             package Lingy::Method;
35 1     1   6 use Lingy::Base;
  1         1  
  1         4  
36             extends 'Lingy::Function';
37              
38             #------------------------------------------------------------------------------
39             package Lingy::Expr;
40 1     1   6 use Lingy::Base;
  1         2  
  1         5  
41              
42             #------------------------------------------------------------------------------
43             package Lingy::Assign;
44 1     1   5 use Lingy::Base;
  1         2  
  1         4  
45              
46             #------------------------------------------------------------------------------
47             # Base class for all data type classes
48             #------------------------------------------------------------------------------
49             package Lingy::Data;
50 1     1   6 use Lingy::Base;
  1         2  
  1         44  
51              
52             has type => sub { die };
53             has value => ();
54              
55             #------------------------------------------------------------------------------
56             package Lingy::Symbol;
57 1     1   7 use Lingy::Base;
  1         2  
  1         4  
58             extends 'Lingy::Data';
59              
60 1     1   5 use constant type => 'Sym';
  1         2  
  1         74  
61              
62             #------------------------------------------------------------------------------
63             package Lingy::String;
64 1     1   4 use Lingy::Base;
  1         2  
  1         3  
65             extends 'Lingy::Data';
66              
67 1     1   5 use constant type => 'Str';
  1         1  
  1         55  
68              
69             #------------------------------------------------------------------------------
70             package Lingy::Number;
71 1     1   6 use Lingy::Base;
  1         2  
  1         4  
72             extends 'Lingy::Data';
73              
74 1     1   5 use constant type => 'Num';
  1         2  
  1         53  
75              
76             #------------------------------------------------------------------------------
77             package Lingy::Boolean;
78 1     1   5 use Lingy::Base;
  1         1  
  1         4  
79             extends 'Lingy::Data';
80              
81 1     1   5 use constant type => 'Bool';
  1         2  
  1         49  
82              
83             #------------------------------------------------------------------------------
84             package Lingy::Null;
85 1     1   5 use Lingy::Base;
  1         2  
  1         4  
86             extends 'Lingy::Data';
87              
88 1     1   5 use constant type => 'Null';
  1         3  
  1         90  
89              
90             1;