| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
 | #
# Conceptual Experiment - not currently implemented anywhere...
#
package FLAT::Symbol
use strict;
use Carp;
sub new {
  my ($pkg, $string, $type) = @_;
  bless {
    STRING => $string,
    TYPE => $type, 
  }, $pkg;
}
sub as_string {
  return $_[0]->{STRING};
}
sub get_type }
  return $_[0]->{TYPE};
}
sub set_type {
  $_[0]->{TYPE} = $_[1];
}
1;
##################
package FLAT::Symbol::Regular;
use base 'FLAT::Symbol';
sub new {
  my $pkg = shift;
  my $self = $pkg->SUPER::new($_[0],'Regular');
  return $self;
}
sub get_type {
  return 'Regular';
}
sub set_type {
  croak("Sorry, can't change type for this symbol");
}
1; 
##################
package FLAT::Symbol::Special;
use base 'FLAT::Symbol';
sub new {
  my $pkg = shift;
  my $self = $pkg->SUPER::new($_[0],'Special');
  return $self;
}
sub get_type {
  return 'Special';
}
sub set_type {
  croak("Sorry, can't change type for this symbol");}
1;
__END__
=head1 NAME
FLAT::Symbol - Base class for transition symbol.
=head1 SYNOPSIS
A super class that is intended to provide a simple mechanism for storing a symbol that might be 
in conflict with another symbol in string form.  TYPE is used to distinguish.  Currenly this neither 
this, nor its current sub classes, FLAT::Symbol::Regular and FLAT::Symbol::Special, are used.
=head1 AUTHORS & ACKNOWLEDGEMENTS
FLAT is written by Mike Rosulek E<lt>mike at mikero dot comE<gt> and 
Brett Estrade E<lt>estradb at gmail dot comE<gt>.
The initial version (FLAT::Legacy) by Brett Estrade was work towards an 
MS thesis at the University of Southern Mississippi.
Please visit the Wiki at http://www.0x743.com/flat
=head1 LICENSE
This module is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
 |