296
350
/* mark file as successfully visited */
354
public Namespace! create_namespace (string name, SourceReference source_reference = null) {
355
var node = new Namespace (name, source_reference);
356
node.code_binding = codegen.create_namespace_binding (node);
360
public Class! create_class (string! name, SourceReference source_reference = null) {
361
var node = new Class (name, source_reference);
362
node.code_binding = codegen.create_class_binding (node);
366
public Struct! create_struct (string! name, SourceReference source_reference = null) {
367
var node = new Struct (name, source_reference);
368
node.code_binding = codegen.create_struct_binding (node);
372
public Interface! create_interface (string! name, SourceReference source_reference = null) {
373
var node = new Interface (name, source_reference);
374
node.code_binding = codegen.create_interface_binding (node);
378
public Enum! create_enum (string! name, SourceReference source_reference = null) {
379
var node = new Enum (name, source_reference);
380
node.code_binding = codegen.create_enum_binding (node);
384
public EnumValue! create_enum_value (string! name) {
385
var node = new EnumValue (name);
386
node.code_binding = codegen.create_enum_value_binding (node);
390
public EnumValue! create_enum_value_with_value (string! name, Expression value) {
391
var node = new EnumValue.with_value (name, value);
392
node.code_binding = codegen.create_enum_value_binding (node);
396
public Callback! create_callback (string name, TypeReference return_type, SourceReference source_reference = null) {
397
var node = new Callback (name, return_type, source_reference);
398
node.code_binding = codegen.create_callback_binding (node);
402
public Constant! create_constant (string! name, TypeReference! type_reference, Expression initializer, SourceReference source_reference) {
403
var node = new Constant (name, type_reference, initializer, source_reference);
404
node.code_binding = codegen.create_constant_binding (node);
408
public Field! create_field (string! name, TypeReference! type_reference, Expression initializer, SourceReference source_reference = null) {
409
var node = new Field (name, type_reference, initializer, source_reference);
410
node.code_binding = codegen.create_field_binding (node);
414
public Method! create_method (string name, TypeReference return_type, SourceReference source_reference = null) {
415
var node = new Method (name, return_type, source_reference);
416
node.code_binding = codegen.create_method_binding (node);
420
public CreationMethod! create_creation_method (string name, SourceReference source_reference = null) {
421
var node = new CreationMethod (name, source_reference);
422
node.code_binding = codegen.create_creation_method_binding (node);
426
public FormalParameter! create_formal_parameter (string! name, TypeReference type_reference, SourceReference source_reference = null) {
427
var node = new FormalParameter (name, type_reference, source_reference);
428
node.code_binding = codegen.create_formal_parameter_binding (node);
432
public FormalParameter! create_formal_parameter_with_ellipsis (SourceReference source_reference = null) {
433
var node = new FormalParameter.with_ellipsis (source_reference);
434
node.code_binding = codegen.create_formal_parameter_binding (node);
438
public Property! create_property (string! name, TypeReference! type_reference, PropertyAccessor get_accessor, PropertyAccessor set_accessor, SourceReference source_reference) {
439
var node = new Property (name, type_reference, get_accessor, set_accessor, source_reference);
440
node.code_binding = codegen.create_property_binding (node);
444
public PropertyAccessor! create_property_accessor (bool readable, bool writable, bool construction, Block body, SourceReference source_reference) {
445
var node = new PropertyAccessor (readable, writable, construction, body, source_reference);
446
node.code_binding = codegen.create_property_accessor_binding (node);
450
public Signal! create_signal (string! name, TypeReference! return_type, SourceReference source_reference = null) {
451
var node = new Signal (name, return_type, source_reference);
452
node.code_binding = codegen.create_signal_binding (node);
456
public Constructor! create_constructor (SourceReference source_reference) {
457
var node = new Constructor (source_reference);
458
node.code_binding = codegen.create_constructor_binding (node);
462
public Destructor! create_destructor (SourceReference source_reference = null) {
463
var node = new Destructor (source_reference);
464
node.code_binding = codegen.create_destructor_binding (node);
468
public TypeParameter! create_type_parameter (string name, SourceReference source_reference) {
469
var node = new TypeParameter (name, source_reference);
470
node.code_binding = codegen.create_type_parameter_binding (node);
474
public Block! create_block (SourceReference source_reference = null) {
475
var node = new Block (source_reference);
476
node.code_binding = codegen.create_block_binding (node);
480
public EmptyStatement! create_empty_statement (SourceReference source_reference = null) {
481
var node = new EmptyStatement (source_reference);
482
node.code_binding = codegen.create_empty_statement_binding (node);
486
public DeclarationStatement! create_declaration_statement (LocalVariableDeclaration! declaration, SourceReference source_reference) {
487
var node = new DeclarationStatement (declaration, source_reference);
488
node.code_binding = codegen.create_declaration_statement_binding (node);
492
public LocalVariableDeclaration! create_local_variable_declaration (TypeReference type_reference, SourceReference source_reference) {
493
var node = new LocalVariableDeclaration (type_reference, source_reference);
494
node.code_binding = codegen.create_local_variable_declaration_binding (node);
498
public LocalVariableDeclaration! create_local_variable_declaration_var_type (SourceReference source_reference) {
499
var node = new LocalVariableDeclaration.var_type (source_reference);
500
node.code_binding = codegen.create_local_variable_declaration_binding (node);
504
public VariableDeclarator! create_variable_declarator (string! name, Expression initializer = null, SourceReference source_reference = null) {
505
var node = new VariableDeclarator (name, initializer, source_reference);
506
node.code_binding = codegen.create_variable_declarator_binding (node);
510
public InitializerList! create_initializer_list (SourceReference source_reference) {
511
var node = new InitializerList (source_reference);
512
node.code_binding = codegen.create_initializer_list_binding (node);
516
public ExpressionStatement! create_expression_statement (Expression! expression, SourceReference source_reference = null) {
517
var node = new ExpressionStatement (expression, source_reference);
518
node.code_binding = codegen.create_expression_statement_binding (node);
522
public IfStatement! create_if_statement (Expression! condition, Block! true_statement, Block false_statement, SourceReference source_reference) {
523
var node = new IfStatement (condition, true_statement, false_statement, source_reference);
524
node.code_binding = codegen.create_if_statement_binding (node);
528
public SwitchStatement! create_switch_statement (Expression! expression, SourceReference source_reference) {
529
var node = new SwitchStatement (expression, source_reference);
530
node.code_binding = codegen.create_switch_statement_binding (node);
534
public SwitchSection! create_switch_section (SourceReference source_reference) {
535
var node = new SwitchSection (source_reference);
536
node.code_binding = codegen.create_switch_section_binding (node);
540
public SwitchLabel! create_switch_label (Expression expression, SourceReference source_reference = null) {
541
var node = new SwitchLabel (expression, source_reference);
542
node.code_binding = codegen.create_switch_label_binding (node);
546
public SwitchLabel! create_switch_label_with_default (SourceReference source_reference = null) {
547
var node = new SwitchLabel.with_default (source_reference);
548
node.code_binding = codegen.create_switch_label_binding (node);
552
public WhileStatement! create_while_statement (Expression! condition, Block! body, SourceReference source_reference = null) {
553
var node = new WhileStatement (condition, body, source_reference);
554
node.code_binding = codegen.create_while_statement_binding (node);
558
public DoStatement! create_do_statement (Block! body, Expression! condition, SourceReference source_reference = null) {
559
var node = new DoStatement (body, condition, source_reference);
560
node.code_binding = codegen.create_do_statement_binding (node);
564
public ForStatement! create_for_statement (Expression condition, Block body, SourceReference source_reference = null) {
565
var node = new ForStatement (condition, body, source_reference);
566
node.code_binding = codegen.create_for_statement_binding (node);
570
public ForeachStatement! create_foreach_statement (TypeReference! type_reference, string! variable_name, Expression! collection, Block body, SourceReference source_reference) {
571
var node = new ForeachStatement (type_reference, variable_name, collection, body, source_reference);
572
node.code_binding = codegen.create_foreach_statement_binding (node);
576
public BreakStatement! create_break_statement (SourceReference source_reference) {
577
var node = new BreakStatement (source_reference);
578
node.code_binding = codegen.create_break_statement_binding (node);
582
public ContinueStatement! create_continue_statement (SourceReference source_reference) {
583
var node = new ContinueStatement (source_reference);
584
node.code_binding = codegen.create_continue_statement_binding (node);
588
public ReturnStatement! create_return_statement (Expression return_expression = null, SourceReference source_reference = null) {
589
var node = new ReturnStatement (return_expression, source_reference);
590
node.code_binding = codegen.create_return_statement_binding (node);
594
public ThrowStatement! create_throw_statement (Expression! error_expression, SourceReference source_reference = null) {
595
var node = new ThrowStatement (error_expression, source_reference);
596
node.code_binding = codegen.create_throw_statement_binding (node);
600
public TryStatement! create_try_statement (Block! body, Block finally_body, SourceReference source_reference = null) {
601
var node = new TryStatement (body, finally_body, source_reference);
602
node.code_binding = codegen.create_try_statement_binding (node);
606
public CatchClause! create_catch_clause (TypeReference type_reference, string variable_name, Block body, SourceReference source_reference = null) {
607
var node = new CatchClause (type_reference, variable_name, body, source_reference);
608
node.code_binding = codegen.create_catch_clause_binding (node);
612
public LockStatement! create_lock_statement (Expression resource, Block body, SourceReference source_reference = null) {
613
var node = new LockStatement (resource, body, source_reference);
614
node.code_binding = codegen.create_lock_statement_binding (node);
618
public ArrayCreationExpression! create_array_creation_expression (TypeReference element_type, int rank, InitializerList initializer_list, SourceReference source_reference) {
619
var node = new ArrayCreationExpression (element_type, rank, initializer_list, source_reference);
620
node.code_binding = codegen.create_array_creation_expression_binding (node);
624
public BooleanLiteral! create_boolean_literal (bool value, SourceReference source_reference) {
625
var node = new BooleanLiteral (value, source_reference);
626
node.code_binding = codegen.create_boolean_literal_binding (node);
630
public CharacterLiteral! create_character_literal (string! value, SourceReference source_reference) {
631
var node = new CharacterLiteral (value, source_reference);
632
node.code_binding = codegen.create_character_literal_binding (node);
636
public IntegerLiteral! create_integer_literal (string! value, SourceReference source_reference = null) {
637
var node = new IntegerLiteral (value, source_reference);
638
node.code_binding = codegen.create_integer_literal_binding (node);
642
public RealLiteral! create_real_literal (string value, SourceReference source_reference) {
643
var node = new RealLiteral (value, source_reference);
644
node.code_binding = codegen.create_real_literal_binding (node);
648
public StringLiteral! create_string_literal (string value, SourceReference source_reference) {
649
var node = new StringLiteral (value, source_reference);
650
node.code_binding = codegen.create_string_literal_binding (node);
654
public NullLiteral! create_null_literal (SourceReference source_reference = null) {
655
var node = new NullLiteral (source_reference);
656
node.code_binding = codegen.create_null_literal_binding (node);
660
public LiteralExpression! create_literal_expression (Literal! literal, SourceReference source_reference = null) {
661
var node = new LiteralExpression (literal, source_reference);
662
node.code_binding = codegen.create_literal_expression_binding (node);
666
public ParenthesizedExpression! create_parenthesized_expression (Expression! inner, SourceReference source_reference) {
667
var node = new ParenthesizedExpression (inner, source_reference);
668
node.code_binding = codegen.create_parenthesized_expression_binding (node);
672
public MemberAccess! create_member_access (Expression inner, string! member_name, SourceReference source_reference = null) {
673
var node = new MemberAccess (inner, member_name, source_reference);
674
node.code_binding = codegen.create_member_access_binding (node);
678
public MemberAccess! create_member_access_simple (string! member_name, SourceReference source_reference = null) {
679
var node = new MemberAccess.simple (member_name, source_reference);
680
node.code_binding = codegen.create_member_access_binding (node);
684
public InvocationExpression! create_invocation_expression (Expression! call, SourceReference source_reference = null) {
685
var node = new InvocationExpression (call, source_reference);
686
node.code_binding = codegen.create_invocation_expression_binding (node);
690
public ElementAccess! create_element_access (Expression container, SourceReference source_reference) {
691
var node = new ElementAccess (container, source_reference);
692
node.code_binding = codegen.create_element_access_binding (node);
696
public BaseAccess! create_base_access (SourceReference source_reference = null) {
697
var node = new BaseAccess (source_reference);
698
node.code_binding = codegen.create_base_access_binding (node);
702
public PostfixExpression! create_postfix_expression (Expression! inner, bool increment, SourceReference source_reference) {
703
var node = new PostfixExpression (inner, increment, source_reference);
704
node.code_binding = codegen.create_postfix_expression_binding (node);
708
public ObjectCreationExpression! create_object_creation_expression (MemberAccess! member_name, SourceReference source_reference) {
709
var node = new ObjectCreationExpression (member_name, source_reference);
710
node.code_binding = codegen.create_object_creation_expression_binding (node);
714
public SizeofExpression! create_sizeof_expression (TypeReference! type_reference, SourceReference source_reference) {
715
var node = new SizeofExpression (type_reference, source_reference);
716
node.code_binding = codegen.create_sizeof_expression_binding (node);
720
public TypeofExpression! create_typeof_expression (TypeReference! type_reference, SourceReference source_reference) {
721
var node = new TypeofExpression (type_reference, source_reference);
722
node.code_binding = codegen.create_typeof_expression_binding (node);
726
public UnaryExpression! create_unary_expression (UnaryOperator operator, Expression! inner, SourceReference source_reference) {
727
var node = new UnaryExpression (operator, inner, source_reference);
728
node.code_binding = codegen.create_unary_expression_binding (node);
732
public CastExpression! create_cast_expression (Expression! inner, TypeReference! type_reference, SourceReference source_reference, bool is_silent_cast) {
733
var node = new CastExpression (inner, type_reference, source_reference, is_silent_cast);
734
node.code_binding = codegen.create_cast_expression_binding (node);
738
public PointerIndirection! create_pointer_indirection (Expression! inner, SourceReference source_reference = null) {
739
var node = new PointerIndirection (inner, source_reference);
740
node.code_binding = codegen.create_pointer_indirection_binding (node);
744
public AddressofExpression! create_addressof_expression (Expression! inner, SourceReference source_reference = null) {
745
var node = new AddressofExpression (inner, source_reference);
746
node.code_binding = codegen.create_addressof_expression_binding (node);
750
public ReferenceTransferExpression! create_reference_transfer_expression (Expression! inner, SourceReference source_reference = null) {
751
var node = new ReferenceTransferExpression (inner, source_reference);
752
node.code_binding = codegen.create_reference_transfer_expression_binding (node);
756
public BinaryExpression! create_binary_expression (BinaryOperator operator, Expression! left, Expression! right, SourceReference source_reference = null) {
757
var node = new BinaryExpression (operator, left, right, source_reference);
758
node.code_binding = codegen.create_binary_expression_binding (node);
762
public TypeCheck! create_type_check (Expression! expression, TypeReference! type_reference, SourceReference source_reference) {
763
var node = new TypeCheck (expression, type_reference, source_reference);
764
node.code_binding = codegen.create_type_check_binding (node);
768
public ConditionalExpression! create_conditional_expression (Expression! condition, Expression! true_expression, Expression! false_expression, SourceReference source_reference) {
769
var node = new ConditionalExpression (condition, true_expression, false_expression, source_reference);
770
node.code_binding = codegen.create_conditional_expression_binding (node);
774
public LambdaExpression! create_lambda_expression (Expression! expression_body, SourceReference source_reference) {
775
var node = new LambdaExpression (expression_body, source_reference);
776
node.code_binding = codegen.create_lambda_expression_binding (node);
780
public LambdaExpression! create_lambda_expression_with_statement_body (Block! statement_body, SourceReference source_reference) {
781
var node = new LambdaExpression.with_statement_body (statement_body, source_reference);
782
node.code_binding = codegen.create_lambda_expression_binding (node);
786
public Assignment! create_assignment (Expression! left, Expression! right, AssignmentOperator operator = AssignmentOperator.SIMPLE, SourceReference source_reference = null) {
787
var node = new Assignment (left, right, operator, source_reference);
788
node.code_binding = codegen.create_assignment_binding (node);