<?php

// $Date: 2004/01/01 15:27:44 $
// $Revision: 1.3 $
// $Author: jcrocholl $

$indent_chars 3;

function 
keyword($text) { return span('keyword'$text); }
function 
package($text) { return span('package'$text); }
function 
type($text)    { return span('type',    $text); }
function 
comment($text) { return span('comment'$text); }
function 
name($text)    { return span('name',    $text); }

function 
illegal($text) { 
    global 
$parsefilename$line_number$line;
    
warning($parsefilename$line_number$line$text);
    return 
span('illegal'$text);
}

// print preg_replace('/".+?"/', 'blah', '"one", "two"');
// print preg_replace('/\((.+?)\)/', '$1', '((one), (two))');
function check_parens($text) {
    
$text preg_replace('/".+?"/'''$text);
    
$text preg_replace('/\'.\'/'''$text);
    
$open substr_count($text'(');
    
$close substr_count($text')');
    
// print "$text $open $close<br/>\n";
    
return $open == $close;
}

function 
dotname($name) {
    
$parts explode('.'$name);
    
$result name(array_shift($parts));
    while (
$parts$result .= '.' name(array_shift($parts));
    return 
$result;
}

function 
typespec($text) { return $text; }
function 
generic($text)  { return $text; }
function 
term($text)     { return $text; }
function 
modifier($text) { return $text; } // record modifier: "Size : Positive"
function bounds($text)   { return $text; } // type bounds: "1 .. Size, 1 .. Size"
function actual($text)   { return $text; } // actual parameters: Call(A, B, C)

?>