Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

Language::Basic::Statement
Package to handle parsing and implementing single BASIC statements.

Language::Basic::Statement - Package to handle parsing and implementing single BASIC statements.



NAME

Language::Basic::Statement - Package to handle parsing and implementing single BASIC statements.


SYNOPSIS

See the Language::Basic manpage for the overview of how the Language::Basic module works. This pod page is more technical.

A Statement is something like 'GOTO 20' or 'PRINT ``HELLO'''. A line of BASIC code is made up of one or more Statements.


    # Create the statement from an LB::Token::Group and

    # bless it to an LBS::* subclass

    my $statement = new Language::Basic::Statement $token_group;

    $statement->parse; # Parse the statement

    $statement->implement; # Implement the statement

    # Return a string containing the Perl equivalent of the statement

    $str = $statement->output_perl;


DESCRIPTION

Take a program like:


 5 LET A = 2

 10 IF A >= 3 THEN GOTO 20 ELSE PRINT "IT'S SMALLER"

Line 5 has just one statement. Line 10 actually contains three. The first is an IF statement, but the results of the THEN and the ELSE are entire statements in themselves.

Each type of statement in BASIC has an associated LB::Statement class. For example, there's LB::Statement::Let and LB::Statement::If. (But no LB::Statement::Then! Instead the ``then'' field of the LB::Statement::If object will point to another statement. In the above program, it would point to a LB::Statement::Goto.)

Parsing a line of BASIC starts with removing the line number and lexing the line, breaking it into Tokens which are held in an LB::Token::Group. LB::Statement::new, refine, and parse, are all called with a Token::Group argument. These methods gradually ``eat'' their way through the Tokens.

LBS::new simply creates an LBS object. However, it then calls LBS::refine, which looks at the first Token of the command and blesses the object to the correct LBS::* subclass.

Each LBS subclass then has (at least) the methods parse, implement, and output_perl.

The parse method goes through the text and digests it and sets various fields in the object, which are used by implement and output_perl. The implement method actually implements the BASIC command. The output_perl method returns a string (with ; but not \n at the end) of the Perl equivalent of the BASIC statement.

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy