added Buffer_Record, Token_Record and related procedures

This commit is contained in:
2014-01-02 16:28:18 +00:00
parent 30990c3aa8
commit dd8a477013
3 changed files with 186 additions and 69 deletions

View File

@ -430,23 +430,27 @@ private
type Heap_Number is mod 2 ** 1;
type Heap_Pointer_Array is Array (Heap_Number'First .. Heap_Number'Last) of Heap_Pointer;
type Register_Record is limited record
Code: Object_Pointer := Nil_Pointer;
Envir: Object_Pointer := Nil_Pointer;
Args: Object_Pointer := Nil_Pointer;
Next: Object_Pointer := Nil_Pointer;
subtype Thin_String is Object_String (Standard.Positive'Range);
type Thin_String_Pointer is access all Thin_String;
for Thin_String_Pointer'Size use Object_Pointer_Bits;
type Buffer_Record is record
Ptr: Thin_String_Pointer := null;
Len: Standard.Natural := 0;
Last: Standard.Natural := 0;
end record;
type Token_Kind is (End_Token,
Identifier_Token,
Left_Parenthesis_Token,
Right_Parenthesis_Token,
Single_Quote_Token
Single_Quote_Token,
String_Token
);
type Token_Record is record
Kind: Token_Kind;
Value: Object_String;
Value: Buffer_Record;
end record;
--type Interpreter_Record is tagged limited record
@ -467,8 +471,6 @@ private
Stack: Object_Pointer := Nil_Pointer;
Mark: Object_Pointer := Nil_Pointer;
R: Register_Record;
Base_Input: aliased IO_Record;
Input: IO_Pointer := null;