コード例 #1
0
ファイル: SymSubrangeType.php プロジェクト: kaduev13/Compiler
 public function printInfo($offset)
 {
     Console::write("{$offset}SymSubrangeType:\n");
     $offset .= '    ';
     Console::write("{$offset}{$this->identifier}\n");
     Console::write("{$offset}{$this->from}..{$this->to}\n");
 }
コード例 #2
0
ファイル: SymProc.php プロジェクト: kaduev13/Compiler
 public function printInfo($offset)
 {
     Console::write("{$offset}SymProc:\n");
     $offset .= '    ';
     Console::write("{$offset}{$this->identifier}\n");
     $this->symTable->printInfo($offset);
 }
コード例 #3
0
ファイル: SymConst.php プロジェクト: kaduev13/Compiler
 public function printInfo($offset)
 {
     Console::write("{$offset}SymConst:\n");
     $offset .= '    ';
     Console::write("{$offset}{$this->identifier} = {$this->value}\n");
     $this->type->printInfo($offset);
 }
コード例 #4
0
 public function printInfo($offset)
 {
     Console::write("{$offset}SymPointerAnonimType:\n");
     $offset .= '    ';
     Console::write("{$offset}{$this->identifier}\n");
     $this->type->printInfo($offset);
 }
コード例 #5
0
ファイル: SymSimpleType.php プロジェクト: kaduev13/Compiler
 public function printInfo($offset)
 {
     Console::write("{$offset}SymSimpleType:\n");
     $offset .= '    ';
     Console::write("{$offset}{$this->identifier}\n");
     Console::write("{$offset}{$this->type}\n");
 }
コード例 #6
0
ファイル: SymAliasType.php プロジェクト: kaduev13/Compiler
 public function printInfo($offset)
 {
     Console::write("{$offset}SymAliasType:\n");
     $offset .= '    ';
     Console::write("{$offset}{$this->identifier}\n");
     $this->aliased->printInfo($offset);
 }
コード例 #7
0
ファイル: SymTable.php プロジェクト: kaduev13/Compiler
 public function printInfo($offset)
 {
     Console::write("{$offset}SymTable:\n");
     $offset .= '    ';
     foreach ($this->symbols as $identifier => $symbol) {
         $symbol->printInfo($offset);
     }
 }
コード例 #8
0
ファイル: SymArg.php プロジェクト: kaduev13/Compiler
 public function printInfo($offset)
 {
     Console::write("{$offset}SymArg:\n");
     $offset .= '    ';
     Console::write("{$offset}{$this->identifier}\n");
     Console::write("{$offset}index = {$this->index}\n");
     $this->type->printInfo($offset);
 }
コード例 #9
0
ファイル: SymFunc.php プロジェクト: kaduev13/Compiler
 public function printInfo($offset)
 {
     Console::write("{$offset}SymFunc:\n");
     $offset .= '    ';
     Console::write("{$offset}{$this->identifier}\n");
     $this->symTable->printInfo($offset);
     Console::write("{$offset}return value:\n");
     $this->returnType->printInfo($offset);
 }
コード例 #10
0
 public function printInfo($offset)
 {
     Console::write("{$offset}SymArrayAnonimType:\n");
     $offset .= '    ';
     Console::write("{$offset}{$this->identifier}\n");
     for ($i = 0; $i < count($this->dimensions); $i++) {
         $this->dimensions[$i]->printInfo($offset);
     }
     $this->type->printInfo($offset);
 }
コード例 #11
0
ファイル: compiler.php プロジェクト: kaduev13/Compiler
    if ($params['syntax-only']) {
        try {
            $program = new Program($scanner);
        } catch (CompilerException $e) {
            Console::write($e);
            Console::closeStream();
            exit(1);
        }
        if ($params['html']) {
            $syntaxTree = json_encode($program->toIdArray());
            // echo $syntaxTree;
            TreeViewer::genSyntaxHtml($params['html'], "result", $syntaxTree);
        } else {
            $syntaxTree = $program->toIdArray();
            Console::write(json_encode($syntaxTree, JSON_PRETTY_PRINT));
        }
    } else {
        if ($params['table-only']) {
            try {
                $program = new Program($scanner);
            } catch (CompilerException $e) {
                Console::write($e);
                Console::closeStream();
                exit(1);
            }
            $program->symTable->printInfo('');
        }
    }
}
Console::closeStream();