/vark_c/ast/nodes/Assert.php
PHP | 45 lines | 24 code | 4 blank | 17 comment | 0 complexity | 0b493db99ee1da21b514f0069012fef6 MD5 | raw file
- <?php
- /*
- Vark - compiles vark programs to PHP
- Copyright (C) 2013 Alex Deleyn <alex@bakboord.be>
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- namespace vark\c\ast;
- use vark\c\parse;
- class Assert extends parse\Node
- {
- public static function parse( $source )
- {
- $nodes = array();
- $nodes[] = $source->read( 'assert' );
- $nodes[] = util\parse_expression( $source );
- $nodes[] = $source->read( 'newline' );
- return new self( $nodes );
- }
-
- public function phpify( $out )
- {
- $out(
- $this[0]->whitespace,
- 'if(!(',
- $this[1],
- '))throw new \vark\r\AssertError();',
- $this[2]
- );
- }
- }