function OpenCommand(args, define) {
    var lowerArgs = args.toLowerCase();
    var forIndex = lowerArgs.indexOf(' for ');
    if (forIndex === -1) throw new SyntaxError('OPEN without FOR');
    var filename = new statements.ExpressionStatement(args.substring(0, forIndex).trim(), define);

    var asIndex = lowerArgs.indexOf(' as ');
    if (asIndex === -1) throw new SyntaxError('OPEN without AS');
    var type = args.substring(forIndex + 5, asIndex).trim().toLowerCase();
    if (type !== 'input' && type !== 'output' && type !== 'append') throw new SyntaxError('Invalid mode');

    var pointer = new statements.ExpressionStatement(args.substring(asIndex + 4).trim(), define);
    if (!(pointer.child instanceof statements.PointerStatement)) throw new SyntaxError('Expected pointer');

    this.filename = filename;
    this.type = type;
    this.pointer = pointer;
}
function OpenCommand(args, define) {
    var lowerArgs = args.toLowerCase();
    var forIndex = lowerArgs.indexOf(' for ');
    if (forIndex === -1) throw new SyntaxError('OPEN without FOR');
    var filename = new statements.ExpressionStatement(args.substring(0, forIndex).trim(), define);

    var asIndex = lowerArgs.indexOf(' as ');
    if (asIndex === -1) throw new SyntaxError('OPEN without AS');
    var type = args.substring(forIndex + 5, asIndex).trim().toLowerCase();
    if (type !== 'input' && type !== 'output' && type !== 'append') throw new SyntaxError('Invalid mode');

    var pointer = new statements.ExpressionStatement(args.substring(asIndex + 4).trim(), define);
    if (!(pointer.child instanceof statements.PointerStatement)) throw new SyntaxError('Expected pointer');

    this.filename = filename;
    this.type = type;
    this.pointer = pointer;
}
function OpenCommand ( args , define ) { var lowerArgs = args . toLowerCase ( ) ; var forIndex = lowerArgs . indexOf ( ' for ' ) ; if ( forIndex === - 1 ) throw new SyntaxError ( 'OPEN without FOR' ) ; var filename = new statements . ExpressionStatement ( args . substring ( 0 , forIndex ) . trim ( ) , define ) ; var asIndex = lowerArgs . indexOf ( ' as ' ) ; if ( asIndex === - 1 ) throw new SyntaxError ( 'OPEN without AS' ) ; var type = args . substring ( forIndex + 5 , asIndex ) . trim ( ) . toLowerCase ( ) ; if ( type !== 'input' && type !== 'output' && type !== 'append' ) throw new SyntaxError ( 'Invalid mode' ) ; var pointer = new statements . ExpressionStatement ( args . substring ( asIndex + 4 ) . trim ( ) , define ) ; if ( ! ( pointer . child instanceof statements . PointerStatement ) ) throw new SyntaxError ( 'Expected pointer' ) ; this . filename = filename ; this . type = type ; this . pointer = pointer ; }
Opens a file in a pointer

@param {String} args The arguments to the command
@param {Function} define
@constructor
Opens a file in a pointer