Last active
August 29, 2015 14:19
-
-
Save PsichiX/15b708b6f3675b86fbe4 to your computer and use it in GitHub Desktop.
Intuicio++ language syntax
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef __GRAMMAR_H__ | |
#define __GRAMMAR_H__ | |
#include "std_extension.h" | |
#include <pegtl.hh> | |
namespace IntuicioPlusPlus | |
{ | |
namespace Grammar | |
{ | |
struct expression; | |
struct statement; | |
struct statements; | |
struct block; | |
struct variable; | |
struct identifier; | |
struct access_struct; | |
struct access_type; | |
struct cast_suffix; | |
struct type_specifier; | |
namespace ControlFlow | |
{ | |
struct inlined_condition; | |
} | |
namespace Function | |
{ | |
struct definition_anonymous; | |
namespace Call | |
{ | |
struct arguments; | |
} | |
struct call; | |
} | |
namespace Class | |
{ | |
struct type; | |
} | |
namespace MetaAttribute | |
{ | |
struct meta_instance; | |
struct definition; | |
} | |
struct semicolons : pegtl::plus< pegtl::one< ';' > > {}; | |
namespace Comment | |
{ | |
struct inlined : pegtl::seq< pegtl::two< '/' >, pegtl::until< pegtl::eolf > > {}; | |
struct block : pegtl::seq< pegtl::string< '/', '*' >, pegtl::until< pegtl::string< '*', '/' > > > {}; | |
} | |
struct comment : pegtl::sor< Comment::inlined, Comment::block > {}; | |
struct whitespaces : pegtl::plus< pegtl::sor< pegtl::space, comment > > {}; | |
struct whitespaces_any : pegtl::star< pegtl::sor< pegtl::space, comment > > {}; | |
struct static_keyword : pegtl::string< 's', 't', 'a', 't', 'i', 'c' > {}; | |
struct using_keyword : pegtl::string< 'u', 's', 'i', 'n', 'g' > {}; | |
struct namespace_keyword : pegtl::string< 'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e' > {}; | |
struct namespace_block : pegtl::seq< namespace_keyword, whitespaces, identifier, pegtl::star< access_struct >, whitespaces_any, block > {}; | |
struct using_namespace_statement : pegtl::seq< using_keyword, whitespaces, namespace_keyword, whitespaces, identifier, pegtl::star< access_struct >, whitespaces_any, semicolons > {}; | |
struct public_keyword : pegtl::string< 'p', 'u', 'b', 'l', 'i', 'c' > {}; | |
struct private_keyword : pegtl::string< 'p', 'r', 'i', 'v', 'a', 't', 'e' > {}; | |
struct protected_keyword : pegtl::string< 'p', 'r', 'o', 't', 'e', 'c', 't', 'e', 'd' > {}; | |
struct internal_keyword : pegtl::string< 'i', 'n', 't', 'e', 'r', 'n', 'a', 'l' > {}; | |
struct access_mode : pegtl::sor< public_keyword, private_keyword, protected_keyword, internal_keyword > {}; | |
struct identifier : pegtl::identifier {}; | |
struct array_specifier : pegtl::seq< pegtl::one< '[' >, whitespaces_any, expression, whitespaces_any, pegtl::one< ']' > > {}; | |
struct alias_keyword : pegtl::string< 'a', 'l', 'i', 'a', 's' > {}; | |
struct alias_statement : pegtl::seq< alias_keyword, whitespaces, identifier, type_specifier, whitespaces_any, semicolons > {};; | |
struct default_keyword : pegtl::string< 'd', 'e', 'f', 'a', 'u', 'l', 't' > {}; | |
struct default_value : pegtl::seq< default_keyword, whitespaces, Class::type, pegtl::star< access_type > > {}; | |
struct new_keyword : pegtl::string< 'n', 'e', 'w' > {}; | |
struct delete_keyword : pegtl::string< 'd', 'e', 'l', 'e', 't', 'e' > {}; | |
struct object_create : pegtl::seq< new_keyword, whitespaces, pegtl::sor< Function::call, pegtl::seq< identifier, pegtl::star< access_struct > > >, whitespaces_any, pegtl::opt< array_specifier > > {}; | |
struct object_destroy_statement : pegtl::seq< delete_keyword, whitespaces, expression, whitespaces_any, semicolons > {}; | |
namespace Number | |
{ | |
struct integer_literal : pegtl::seq< pegtl::opt< pegtl::one< '+', '-' > >, pegtl::plus< pegtl::digit > > {}; | |
struct float_literal : pegtl::seq< pegtl::opt< pegtl::one< '+', '-' > >, pegtl::plus< pegtl::digit >, pegtl::one< '.' >, pegtl::plus< pegtl::digit > > {}; | |
struct hex_literal : pegtl::seq< pegtl::string< '0', 'x' >, pegtl::plus< pegtl::xdigit > > {}; | |
} | |
struct number : pegtl::sor< Number::hex_literal, Number::float_literal, Number::integer_literal > {}; | |
namespace String | |
{ | |
struct unicode : pegtl::seq< pegtl::one< 'u' >, pegtl::rep< 4, pegtl::must< pegtl::xdigit > > > {}; | |
struct escaped_character : pegtl::one< '"', '\\', '/', 'b', 'f', 'n', 'r', 't' > {}; | |
struct escaped : pegtl::sor< escaped_character, unicode > {}; | |
struct unescaped : pegtl::utf8::range< 0x20, 0x10FFFF > {}; | |
struct character : pegtl::if_then_else< pegtl::one< '\\' >, pegtl::must< escaped >, unescaped > {}; | |
} | |
struct string : pegtl::seq< pegtl::one< '"' >, pegtl::until< pegtl::one< '"' >, String::character > > {}; | |
struct access_struct : pegtl::seq< whitespaces_any, pegtl::one< '.' >, whitespaces_any, identifier > {}; | |
struct access_type : pegtl::seq< whitespaces_any, pegtl::one< '.' >, whitespaces_any, Class::type > {}; | |
struct access_array : pegtl::seq< whitespaces_any, pegtl::one< '[' >, whitespaces_any, expression, whitespaces_any, pegtl::one< ']' > > {}; | |
struct access : pegtl::sor< access_struct, access_type, access_array > {}; | |
struct value : pegtl::seq< pegtl::sor< default_value, object_create, Function::definition_anonymous, Function::call, ControlFlow::inlined_condition, identifier, number, string >, pegtl::star< access >, pegtl::opt< cast_suffix > > {}; | |
struct type_data : pegtl::seq< Class::type, pegtl::star< access_type > > {}; | |
struct type_object : pegtl::seq< pegtl::one< '^' >, whitespaces_any, Class::type, pegtl::star< access_type > > {}; | |
struct type_pointer : pegtl::seq< pegtl::one< '*' >, whitespaces_any, Class::type, pegtl::star< access_type > > {}; | |
struct type_specifier : pegtl::seq< whitespaces_any, pegtl::one< ':' >, whitespaces_any, pegtl::sor< type_pointer, type_object, type_data > > {}; | |
struct cast_suffix : pegtl::seq< whitespaces_any, pegtl::string< '-', '>' >, whitespaces_any, pegtl::opt< pegtl::sor< type_pointer, type_object, type_data > > > {}; | |
namespace Operators | |
{ | |
struct add : pegtl::one< '+' > {}; | |
struct subtract : pegtl::one< '-' > {}; | |
struct multiply : pegtl::one< '*' > {}; | |
struct divide : pegtl::one< '/' > {}; | |
struct assign : pegtl::one< '=' > {}; | |
struct add_assign : pegtl::string< '+', '=' > {}; | |
struct subtract_assign : pegtl::string< '-', '=' > {}; | |
struct multiply_assign : pegtl::string< '*', '=' > {}; | |
struct divide_assign : pegtl::string< '/', '=' > {}; | |
struct negate_assign : pegtl::string< '~', '=' > {}; | |
struct increment : pegtl::two< '+' > {}; | |
struct decrement : pegtl::two< '-' > {}; | |
struct logical_and : pegtl::two< '&' > {}; | |
struct logical_or : pegtl::two< '|' > {}; | |
struct logical_not : pegtl::one< '!' > {}; | |
struct bitwise_and : pegtl::one< '&' > {}; | |
struct bitwise_or : pegtl::one< '|' > {}; | |
struct bitwise_xor : pegtl::one< '^' > {}; | |
struct bitwise_not : pegtl::one< '~' > {}; | |
struct bitwise_lshift : pegtl::two< '<' > {}; | |
struct bitwise_rshift : pegtl::two< '>' > {}; | |
struct conditional_equal : pegtl::two< '=' > {}; | |
struct conditional_not_equal : pegtl::sor< pegtl::string< '!', '=' >, pegtl::string< '<', '>' > > {}; | |
struct conditional_less : pegtl::one< '<' > {}; | |
struct conditional_greater : pegtl::one< '>' > {}; | |
struct conditional_less_or_equal : pegtl::string< '<', '=' > {}; | |
struct conditional_greater_or_equal : pegtl::string< '>', '=' > {}; | |
struct array_access_operator : pegtl::string< '[', ']' > {}; | |
struct operation_prefix : pegtl::sor< subtract, logical_not, bitwise_not, increment, decrement > {}; | |
struct operation_suffix : pegtl::sor< increment, decrement > {}; | |
struct binary_operation : pegtl::sor< add, subtract, multiply, divide > {}; | |
struct logical_operation : pegtl::sor< logical_and, logical_or > {}; | |
struct bitwise_operation : pegtl::sor< bitwise_and, bitwise_or, bitwise_xor, bitwise_lshift, bitwise_rshift > {}; | |
struct conditional_operation : pegtl::sor< conditional_equal, conditional_not_equal, conditional_less_or_equal, conditional_greater_or_equal, conditional_less, conditional_greater > {}; | |
struct operation : pegtl::sor< conditional_operation, binary_operation, logical_operation, bitwise_operation > {}; | |
struct assignment : pegtl::sor< assign, add_assign, subtract_assign, multiply_assign, divide_assign, negate_assign > {}; | |
} | |
namespace ControlFlow | |
{ | |
struct return_keyword : pegtl::string< 'r', 'e', 't', 'u', 'r', 'n' > {}; | |
struct return_statement : pegtl::seq< return_keyword, whitespaces_any, expression, whitespaces_any, semicolons > {}; | |
struct continue_keyword : pegtl::string< 'c', 'o', 'n', 't', 'i', 'n', 'u', 'e' > {}; | |
struct continue_statement : pegtl::seq< continue_keyword, whitespaces_any, semicolons > {}; | |
struct break_keyword : pegtl::string< 'b', 'r', 'e', 'a', 'k' > {}; | |
struct break_statement : pegtl::seq< break_keyword, whitespaces_any, semicolons > {}; | |
struct if_keyword : pegtl::string< 'i', 'f' > {}; | |
struct else_keyword : pegtl::string< 'e', 'l', 's', 'e' > {}; | |
struct if_statement : pegtl::seq< if_keyword, whitespaces_any, expression, whitespaces_any, pegtl::sor< block, statement > > {}; | |
struct else_if_statement : pegtl::seq< else_keyword, whitespaces_any, if_statement > {}; | |
struct else_statement : pegtl::seq< else_keyword, whitespaces_any, pegtl::sor< block, statement > > {}; | |
struct condition_statement : pegtl::seq< if_statement, whitespaces_any, pegtl::star< else_if_statement, whitespaces_any >, pegtl::opt< else_statement > > {}; | |
struct inlined_condition_test : pegtl::sor< expression > {}; | |
struct inlined_condition_true : pegtl::sor< expression > {}; | |
struct inlined_condition_false : pegtl::sor< expression > {}; | |
struct inlined_condition : pegtl::seq< pegtl::one< '?' >, whitespaces_any, pegtl::one< '(' >, whitespaces_any, inlined_condition_test, whitespaces_any, pegtl::one< ';' >, whitespaces_any, inlined_condition_true, whitespaces_any, pegtl::one< ';' >, whitespaces_any, inlined_condition_false, whitespaces_any, pegtl::one< ')' > > {}; | |
struct for_keyword : pegtl::string< 'f', 'o', 'r' > {}; | |
struct for_stage_init : pegtl::opt< pegtl::sor< variable, expression > > {}; | |
struct for_stage_condition : pegtl::opt< expression > {}; | |
struct for_stage_iteration : pegtl::opt< expression > {}; | |
struct for_stages : pegtl::seq< pegtl::one< '(' >, whitespaces_any, for_stage_init, whitespaces_any, pegtl::one< ';' >, whitespaces_any, for_stage_condition, whitespaces_any, pegtl::one< ';' >, whitespaces_any, for_stage_iteration, whitespaces_any, pegtl::one< ')' > > {}; | |
struct for_statement : pegtl::seq< for_keyword, whitespaces_any, for_stages, whitespaces_any, pegtl::sor< block, statement > > {}; | |
struct foreach_keyword : pegtl::string< 'f', 'o', 'r', 'e', 'a', 'c', 'h' > {}; | |
struct foreach_stage : pegtl::seq< pegtl::one< '(' >, whitespaces_any, variable, whitespaces_any, pegtl::string< 'i', 'n' >, whitespaces_any, pegtl::sor< value, expression >, whitespaces_any, pegtl::one< ')' > > {}; | |
struct foreach_statement : pegtl::seq< foreach_keyword, whitespaces_any, foreach_stage, whitespaces_any, pegtl::sor< block, statement > > {}; | |
struct while_keyword : pegtl::string< 'w', 'h', 'i', 'l', 'e' > {}; | |
struct while_statement : pegtl::seq< while_keyword, whitespaces_any, expression, whitespaces_any, pegtl::sor< block, statement > > {}; | |
} | |
namespace Variable | |
{ | |
struct assignment; | |
struct declaration : pegtl::seq< pegtl::opt< access_mode, whitespaces >, pegtl::opt< static_keyword, whitespaces >, identifier, type_specifier > {}; | |
struct assignment_expression : pegtl::sor< assignment, expression > {}; | |
struct declaration_assignment : pegtl::seq< declaration, whitespaces_any, Operators::assign, whitespaces_any, assignment_expression > {}; | |
struct declaration_instantiation : pegtl::seq< declaration, whitespaces_any, Function::Call::arguments > {}; | |
struct assignment : pegtl::seq< identifier, pegtl::star< access >, pegtl::opt< cast_suffix >, whitespaces_any, Operators::assignment, whitespaces_any, assignment_expression > {}; | |
} | |
struct variable : pegtl::sor< Variable::declaration_assignment, Variable::declaration_instantiation, Variable::declaration, Variable::assignment > {}; | |
struct variable_statement : pegtl::seq< variable, whitespaces_any, semicolons > {}; | |
struct block : pegtl::seq< pegtl::one< '{' >, whitespaces_any, pegtl::opt< statements >, whitespaces_any, pegtl::one< '}' > > {}; | |
namespace Function | |
{ | |
namespace Definition | |
{ | |
struct argument_list : pegtl::opt< Variable::declaration, whitespaces_any, pegtl::star< pegtl::one< ',' >, whitespaces_any, Variable::declaration > > {}; | |
struct arguments : pegtl::seq< pegtl::one< '(' >, whitespaces_any, argument_list, whitespaces_any, pegtl::one< ')' > > {}; | |
} | |
struct definition_statement : pegtl::seq< pegtl::star< MetaAttribute::definition, whitespaces_any >, pegtl::opt< access_mode, whitespaces >, pegtl::opt< static_keyword, whitespaces >, identifier, whitespaces_any, Definition::arguments, type_specifier, whitespaces_any, block > {}; | |
struct definition_anonymous : pegtl::seq< pegtl::one< '@' >, whitespaces_any, Definition::arguments, type_specifier, whitespaces_any, block > {}; | |
struct definition_operator_statement : pegtl::seq< pegtl::star< MetaAttribute::definition, whitespaces_any >, pegtl::opt< access_mode, whitespaces >, pegtl::opt< static_keyword, whitespaces >, pegtl::sor< Operators::operation, Operators::array_access_operator >, whitespaces_any, Definition::arguments, type_specifier, whitespaces_any, block > {}; | |
namespace Call | |
{ | |
struct argument_list : pegtl::opt< expression, whitespaces_any, pegtl::star< pegtl::one< ',' >, whitespaces_any, expression > > {}; | |
struct arguments : pegtl::seq< pegtl::one< '(' >, whitespaces_any, argument_list, whitespaces_any, pegtl::one< ')' > > {}; | |
} | |
struct call : pegtl::seq< identifier, pegtl::star< access_struct >, whitespaces_any, Call::arguments > {}; | |
struct call_statement : pegtl::seq< call, whitespaces_any, semicolons > {}; | |
} | |
namespace Class | |
{ | |
struct template_parameters; | |
struct keyword : pegtl::string< 'c', 'l', 'a', 's', 's' > {}; | |
struct get_keyword : pegtl::string< 'g', 'e', 't' > {}; | |
struct set_keyword : pegtl::string< 's', 'e', 't' > {}; | |
struct type : pegtl::seq< identifier, whitespaces_any, pegtl::opt< template_parameters > > {}; | |
struct template_parameters : pegtl::seq< pegtl::one< '<' >, whitespaces_any, type, whitespaces_any, pegtl::star< pegtl::one< ',' >, whitespaces_any, type, whitespaces_any >, pegtl::one< '>' > > {}; | |
struct inheritance : pegtl::seq< whitespaces_any, pegtl::one< ':' >, whitespaces_any, type, pegtl::star< whitespaces_any, pegtl::one< ',' >, whitespaces_any, type > > {}; | |
struct constructor : pegtl::seq< pegtl::star< MetaAttribute::definition, whitespaces_any >, pegtl::opt< access_mode, whitespaces >, identifier, whitespaces_any, Function::Definition::arguments, whitespaces_any, block > {}; | |
struct destructor : pegtl::seq< pegtl::star< MetaAttribute::definition, whitespaces_any >, pegtl::opt< access_mode, whitespaces >, pegtl::one< '~' >, identifier, whitespaces_any, Function::Definition::arguments, whitespaces_any, block > {}; | |
struct property_getter : pegtl::seq< pegtl::opt< access_mode, whitespaces >, get_keyword, whitespaces_any, block > {}; | |
struct property_setter : pegtl::seq< pegtl::opt< access_mode, whitespaces >, set_keyword, whitespaces_any, block > {}; | |
struct property : pegtl::seq< pegtl::star< MetaAttribute::definition, whitespaces_any >, pegtl::opt< access_mode, whitespaces >, pegtl::opt< static_keyword, whitespaces >, Variable::declaration, whitespaces_any, pegtl::one< '{' >, whitespaces_any, pegtl::opt< property_getter >, whitespaces_any, pegtl::opt< property_setter >, whitespaces_any, pegtl::one< '}' > > {}; | |
struct body : pegtl::seq< pegtl::one< '{' >, whitespaces_any, pegtl::star< pegtl::sor< destructor, constructor, property, variable_statement, Function::definition_operator_statement, Function::definition_statement >, whitespaces_any >, pegtl::one< '}' > > {}; | |
struct definition_statement : pegtl::seq< pegtl::star< MetaAttribute::definition, whitespaces_any >, pegtl::opt< access_mode, whitespaces >, keyword, whitespaces, identifier, whitespaces_any, pegtl::opt< template_parameters, whitespaces_any >, pegtl::opt< inheritance, whitespaces_any >, body > {}; | |
} | |
namespace Enumeration | |
{ | |
struct keyword : pegtl::string< 'e', 'n', 'u', 'm' > {}; | |
struct field : pegtl::seq< identifier, pegtl::opt< whitespaces_any, Operators::assign, whitespaces_any, pegtl::sor< value, expression > > > {}; | |
struct body : pegtl::seq< pegtl::one< '{' >, whitespaces_any, field, whitespaces_any, pegtl::star< pegtl::one< ',' >, whitespaces_any, field, whitespaces_any >, pegtl::one< '}' > > {}; | |
struct definition_statement : pegtl::seq< pegtl::star< MetaAttribute::definition, whitespaces_any >, pegtl::opt< access_mode, whitespaces >, keyword, whitespaces, identifier, pegtl::opt< type_specifier >, whitespaces_any, body > {}; | |
} | |
namespace MetaAttribute | |
{ | |
struct meta_instance : pegtl::seq< identifier, pegtl::star< access_struct >, whitespaces_any, pegtl::opt< Function::Call::arguments > > {}; | |
struct definition : pegtl::seq< pegtl::one< '[' >, whitespaces_any, meta_instance, whitespaces_any, pegtl::star< pegtl::one< ',' >, whitespaces_any, meta_instance, whitespaces_any >, pegtl::one< ']' > > {}; | |
} | |
namespace Parallel | |
{ | |
struct keyword : pegtl::string< 'p', 'a', 'r', 'a', 'l', 'l', 'e', 'l' > {}; | |
struct local_mode : pegtl::string< 'l', 'o', 'c', 'a', 'l' > {}; | |
struct parent_mode : pegtl::string< 'p', 'a', 'r', 'e', 'n', 't' > {}; | |
struct global_mode : pegtl::string< 'g', 'l', 'o', 'b', 'a', 'l' > {}; | |
struct with_keyword : pegtl::string< 'w', 'i', 't', 'h' > {}; | |
struct mode : pegtl::sor< local_mode, parent_mode, global_mode > {}; | |
struct hardware_repeats : pegtl::string< 'h', 'a', 'r', 'd', 'w', 'a', 'r', 'e' > {}; | |
struct repeats : pegtl::sor< hardware_repeats, Number::integer_literal > {}; | |
struct block_statement : pegtl::seq< keyword, whitespaces, mode, whitespaces, repeats, whitespaces_any, block > {}; | |
struct group_statement : pegtl::seq< keyword, whitespaces, mode, whitespaces_any, block, pegtl::star< whitespaces_any, with_keyword, whitespaces_any, block > > {}; | |
} | |
struct parallel : pegtl::sor< Parallel::block_statement, Parallel::group_statement > {}; | |
struct expression_bracket : pegtl::seq< pegtl::one< '(' >, whitespaces_any, expression, whitespaces_any, pegtl::one< ')' > > {}; | |
struct expression_atomic : pegtl::seq< pegtl::opt< Operators::operation_prefix >, whitespaces_any, pegtl::sor< expression_bracket, value >, pegtl::opt< whitespaces_any, Operators::operation_suffix >, pegtl::opt< cast_suffix > > {}; | |
struct expression : pegtl::seq< expression_atomic, pegtl::star< whitespaces_any, Operators::operation, whitespaces_any, expression_atomic > > {}; | |
struct expression_statement : pegtl::seq< expression, whitespaces_any, semicolons > {}; | |
struct isc_inlined_statement : pegtl::seq< pegtl::string< 'i', 's', 'c' >, pegtl::plus< whitespaces_any, string >, whitespaces_any, semicolons > {}; | |
struct statement : pegtl::sor< comment, block, namespace_block, parallel, using_namespace_statement, alias_statement, object_destroy_statement, variable_statement, ControlFlow::while_statement, ControlFlow::for_statement, ControlFlow::foreach_statement, ControlFlow::condition_statement, ControlFlow::return_statement, ControlFlow::continue_statement, ControlFlow::break_statement, Function::call_statement, Function::definition_statement, Function::definition_operator_statement, Enumeration::definition_statement, Class::definition_statement, isc_inlined_statement, expression_statement > {}; | |
struct statements : pegtl::plus< pegtl::seq< whitespaces_any, statement, whitespaces_any > > {}; | |
struct grammar : pegtl::must< pegtl::opt< statements >, pegtl::eof > {}; | |
} | |
} | |
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[1]() | |
[2]-(statement) | |
[3]--(namespace_block) | |
[4]---(identifier)Some | |
[5]---(access_struct) | |
[6]----(identifier)Test | |
[7]---(access_struct) | |
[8]----(identifier)Namespace | |
[9]---(block) | |
[10]----(statement) | |
[11]-----(class.definition_statement) | |
[12]------(meta_attribute.definition) | |
[13]-------(meta_attribute.meta_instance) | |
[14]--------(identifier)MetaAttribute | |
[15]------(identifier)Something | |
[16]------(class.body) | |
[17]-------(class.constructor) | |
[18]--------(identifier)Something | |
[19]--------(function.definition.arguments) | |
[20]---------(function.definition.argument_list) | |
[21]----------(variable.declaration) | |
[22]-----------(identifier)n | |
[23]-----------(type_specifier) | |
[24]------------(type_object) | |
[25]-------------(class.type) | |
[26]--------------(identifier)string | |
[27]--------(block) | |
[28]---------(statement) | |
[29]----------(variable_statement) | |
[30]-----------(variable) | |
[31]------------(variable.assignment) | |
[32]-------------(identifier)name | |
[33]-------------(operators.assignment) | |
[34]--------------(operators.assign)= | |
[35]-------------(variable.assignment_expression) | |
[36]--------------(expression) | |
[37]---------------(expression_atomic) | |
[38]----------------(value) | |
[39]-----------------(identifier)n | |
[40]-------(variable_statement) | |
[41]--------(variable) | |
[42]---------(variable.declaration_assignment) | |
[43]----------(variable.declaration) | |
[44]-----------(identifier)name | |
[45]-----------(type_specifier) | |
[46]------------(type_object) | |
[47]-------------(class.type) | |
[48]--------------(identifier)string | |
[49]----------(operators.assign)= | |
[50]----------(variable.assignment_expression) | |
[51]-----------(expression) | |
[52]------------(expression_atomic) | |
[53]-------------(value) | |
[54]--------------(identifier)null | |
[55]----(statement) | |
[56]-----(class.definition_statement) | |
[57]------(meta_attribute.definition) | |
[58]-------(meta_attribute.meta_instance) | |
[59]--------(identifier)Something | |
[60]--------(function.call.arguments) | |
[61]---------(function.call.argument_list) | |
[62]----------(expression) | |
[63]-----------(expression_atomic) | |
[64]------------(value) | |
[65]-------------(string)"string automatically wrapped in managed object" | |
[66]------(meta_attribute.definition) | |
[67]-------(meta_attribute.meta_instance) | |
[68]--------(identifier)Fuckin | |
[69]--------(access_struct) | |
[70]---------(identifier)Amazin | |
[71]--------(access_struct) | |
[72]---------(identifier)Attribute | |
[73]-------(meta_attribute.meta_instance) | |
[74]--------(identifier)And | |
[75]--------(access_struct) | |
[76]---------(identifier)Another | |
[77]--------(access_struct) | |
[78]---------(identifier)Attribute | |
[79]------(access_mode) | |
[80]-------(internal_keyword)internal | |
[81]------(identifier)Test | |
[82]------(class.body) | |
[83]-------(variable_statement) | |
[84]--------(variable) | |
[85]---------(variable.declaration_assignment) | |
[86]----------(variable.declaration) | |
[87]-----------(static_keyword)static | |
[88]-----------(identifier)default | |
[89]-----------(type_specifier) | |
[90]------------(type_data) | |
[91]-------------(class.type) | |
[92]--------------(identifier)Test | |
[93]----------(operators.assign)= | |
[94]----------(variable.assignment_expression) | |
[95]-----------(expression) | |
[96]------------(expression_atomic) | |
[97]-------------(value) | |
[98]--------------(function.call) | |
[99]---------------(identifier)Test | |
[100]---------------(function.call.arguments) | |
[101]----------------(function.call.argument_list) | |
[102]-----------------(expression) | |
[103]------------------(expression_atomic) | |
[104]-------------------(value) | |
[105]--------------------(number) | |
[106]---------------------(number.integer_literal)0 | |
[107]-------(class.constructor) | |
[108]--------(access_mode) | |
[109]---------(public_keyword)public | |
[110]--------(identifier)Test | |
[111]--------(function.definition.arguments) | |
[112]---------(function.definition.argument_list) | |
[113]----------(variable.declaration) | |
[114]-----------(identifier)v | |
[115]-----------(type_specifier) | |
[116]------------(type_data) | |
[117]-------------(class.type) | |
[118]--------------(identifier)int | |
[119]--------(block) | |
[120]---------(statement) | |
[121]----------(variable_statement) | |
[122]-----------(variable) | |
[123]------------(variable.assignment) | |
[124]-------------(identifier)V | |
[125]-------------(operators.assignment) | |
[126]--------------(operators.assign)= | |
[127]-------------(variable.assignment_expression) | |
[128]--------------(expression) | |
[129]---------------(expression_atomic) | |
[130]----------------(value) | |
[131]-----------------(identifier)v | |
[132]-------(class.destructor) | |
[133]--------(access_mode) | |
[134]---------(private_keyword)private | |
[135]--------(identifier)Test | |
[136]--------(function.definition.arguments) | |
[137]---------(function.definition.argument_list) | |
[138]--------(block) | |
[139]---------(statement) | |
[140]----------(variable_statement) | |
[141]-----------(variable) | |
[142]------------(variable.assignment) | |
[143]-------------(identifier)V | |
[144]-------------(operators.assignment) | |
[145]--------------(operators.assign)= | |
[146]-------------(variable.assignment_expression) | |
[147]--------------(expression) | |
[148]---------------(expression_atomic) | |
[149]----------------(value) | |
[150]-----------------(number) | |
[151]------------------(number.integer_literal)0 | |
[152]-------(function.definition_operator_statement) | |
[153]--------(meta_attribute.definition) | |
[154]---------(meta_attribute.meta_instance) | |
[155]----------(identifier)ShittyOperator | |
[156]--------(access_mode) | |
[157]---------(public_keyword)public | |
[158]--------(static_keyword)static | |
[159]--------(operators.operation) | |
[160]---------(operators.binary_operation) | |
[161]----------(operators.add)+ | |
[162]--------(function.definition.arguments) | |
[163]---------(function.definition.argument_list) | |
[164]----------(variable.declaration) | |
[165]-----------(identifier)a | |
[166]-----------(type_specifier) | |
[167]------------(type_data) | |
[168]-------------(class.type) | |
[169]--------------(identifier)Test | |
[170]----------(variable.declaration) | |
[171]-----------(identifier)b | |
[172]-----------(type_specifier) | |
[173]------------(type_data) | |
[174]-------------(class.type) | |
[175]--------------(identifier)Test | |
[176]--------(type_specifier) | |
[177]---------(type_data) | |
[178]----------(class.type) | |
[179]-----------(identifier)Test | |
[180]--------(block) | |
[181]---------(statement) | |
[182]----------(control_flow.return_statement) | |
[183]-----------(control_flow.return_keyword)return | |
[184]-----------(expression) | |
[185]------------(expression_atomic) | |
[186]-------------(value) | |
[187]--------------(function.call) | |
[188]---------------(identifier)Test | |
[189]---------------(function.call.arguments) | |
[190]----------------(function.call.argument_list) | |
[191]-----------------(expression) | |
[192]------------------(expression_atomic) | |
[193]-------------------(value) | |
[194]--------------------(identifier)a | |
[195]--------------------(access) | |
[196]---------------------(access_struct) | |
[197]----------------------(identifier)V | |
[198]------------------(operators.operation) | |
[199]-------------------(operators.binary_operation) | |
[200]--------------------(operators.add)+ | |
[201]------------------(expression_atomic) | |
[202]-------------------(value) | |
[203]--------------------(identifier)b | |
[204]--------------------(access) | |
[205]---------------------(access_struct) | |
[206]----------------------(identifier)V | |
[207]-------(class.property) | |
[208]--------(meta_attribute.definition) | |
[209]---------(meta_attribute.meta_instance) | |
[210]----------(identifier)DunnoWhyImFor | |
[211]--------(access_mode) | |
[212]---------(public_keyword)public | |
[213]--------(variable.declaration) | |
[214]---------(identifier)V | |
[215]---------(type_specifier) | |
[216]----------(type_data) | |
[217]-----------(class.type) | |
[218]------------(identifier)int | |
[219]--------(class.property_getter) | |
[220]---------(block) | |
[221]----------(statement) | |
[222]-----------(control_flow.return_statement) | |
[223]------------(control_flow.return_keyword)return | |
[224]------------(expression) | |
[225]-------------(expression_atomic) | |
[226]--------------(value) | |
[227]---------------(identifier)m_v | |
[228]--------(class.property_setter) | |
[229]---------(access_mode) | |
[230]----------(internal_keyword)internal | |
[231]---------(block) | |
[232]----------(statement) | |
[233]-----------(variable_statement) | |
[234]------------(variable) | |
[235]-------------(variable.assignment) | |
[236]--------------(identifier)m_v | |
[237]--------------(operators.assignment) | |
[238]---------------(operators.assign)= | |
[239]--------------(variable.assignment_expression) | |
[240]---------------(expression) | |
[241]----------------(expression_atomic) | |
[242]-----------------(value) | |
[243]------------------(identifier)value | |
[244]-------(variable_statement) | |
[245]--------(variable) | |
[246]---------(variable.declaration_assignment) | |
[247]----------(variable.declaration) | |
[248]-----------(access_mode) | |
[249]------------(protected_keyword)protected | |
[250]-----------(identifier)m_v | |
[251]-----------(type_specifier) | |
[252]------------(type_data) | |
[253]-------------(class.type) | |
[254]--------------(identifier)int | |
[255]----------(operators.assign)= | |
[256]----------(variable.assignment_expression) | |
[257]-----------(expression) | |
[258]------------(expression_atomic) | |
[259]-------------(value) | |
[260]--------------(number) | |
[261]---------------(number.integer_literal)0 | |
[262]-(statement) | |
[263]--(class.definition_statement) | |
[264]---(identifier)Array | |
[265]---(class.template_parameters) | |
[266]----(class.type) | |
[267]-----(identifier)T | |
[268]---(class.body) | |
[269]----(class.constructor) | |
[270]-----(identifier)Array | |
[271]-----(function.definition.arguments) | |
[272]------(function.definition.argument_list) | |
[273]-------(variable.declaration) | |
[274]--------(identifier)c | |
[275]--------(type_specifier) | |
[276]---------(type_data) | |
[277]----------(class.type) | |
[278]-----------(identifier)int | |
[279]-----(block) | |
[280]------(statement) | |
[281]-------(variable_statement) | |
[282]--------(variable) | |
[283]---------(variable.assignment) | |
[284]----------(identifier)values | |
[285]----------(operators.assignment) | |
[286]-----------(operators.assign)= | |
[287]----------(variable.assignment_expression) | |
[288]-----------(expression) | |
[289]------------(expression_atomic) | |
[290]-------------(value) | |
[291]--------------(object_create) | |
[292]---------------(new_keyword)new | |
[293]---------------(function.call) | |
[294]----------------(identifier)T | |
[295]----------------(function.call.arguments) | |
[296]-----------------(function.call.argument_list) | |
[297]------------------(expression) | |
[298]-------------------(expression_atomic) | |
[299]--------------------(value) | |
[300]---------------------(default_value) | |
[301]----------------------(default_keyword)default | |
[302]----------------------(class.type) | |
[303]-----------------------(identifier)T | |
[304]---------------(array_specifier) | |
[305]----------------(expression) | |
[306]-----------------(expression_atomic) | |
[307]------------------(value) | |
[308]-------------------(identifier)c | |
[309]------(statement) | |
[310]-------(variable_statement) | |
[311]--------(variable) | |
[312]---------(variable.assignment) | |
[313]----------(identifier)count | |
[314]----------(operators.assignment) | |
[315]-----------(operators.assign)= | |
[316]----------(variable.assignment_expression) | |
[317]-----------(expression) | |
[318]------------(expression_atomic) | |
[319]-------------(value) | |
[320]--------------(identifier)c | |
[321]----(class.destructor) | |
[322]-----(identifier)Array | |
[323]-----(function.definition.arguments) | |
[324]------(function.definition.argument_list) | |
[325]-----(block) | |
[326]------(statement) | |
[327]-------(object_destroy_statement) | |
[328]--------(delete_keyword)delete | |
[329]--------(expression) | |
[330]---------(expression_atomic) | |
[331]----------(value) | |
[332]-----------(identifier)values | |
[333]------(statement) | |
[334]-------(variable_statement) | |
[335]--------(variable) | |
[336]---------(variable.assignment) | |
[337]----------(identifier)values | |
[338]----------(operators.assignment) | |
[339]-----------(operators.assign)= | |
[340]----------(variable.assignment_expression) | |
[341]-----------(expression) | |
[342]------------(expression_atomic) | |
[343]-------------(value) | |
[344]--------------(identifier)null | |
[345]----(function.definition_operator_statement) | |
[346]-----(operators.array_access_operator)[] | |
[347]-----(function.definition.arguments) | |
[348]------(function.definition.argument_list) | |
[349]-------(variable.declaration) | |
[350]--------(identifier)v | |
[351]--------(type_specifier) | |
[352]---------(type_data) | |
[353]----------(class.type) | |
[354]-----------(identifier)int | |
[355]-----(type_specifier) | |
[356]------(type_data) | |
[357]-------(class.type) | |
[358]--------(identifier)T | |
[359]-----(block) | |
[360]------(statement) | |
[361]-------(control_flow.return_statement) | |
[362]--------(control_flow.return_keyword)return | |
[363]--------(expression) | |
[364]---------(expression_atomic) | |
[365]----------(value) | |
[366]-----------(identifier)values | |
[367]-----------(access) | |
[368]------------(access_array) | |
[369]-------------(expression) | |
[370]--------------(expression_atomic) | |
[371]---------------(value) | |
[372]----------------(identifier)v | |
[373]----(class.property) | |
[374]-----(meta_attribute.definition) | |
[375]------(meta_attribute.meta_instance) | |
[376]-------(identifier)IterationStart | |
[377]-----(variable.declaration) | |
[378]------(identifier)Start | |
[379]------(type_specifier) | |
[380]-------(type_data) | |
[381]--------(class.type) | |
[382]---------(identifier)int | |
[383]-----(class.property_getter) | |
[384]------(block) | |
[385]-------(statement) | |
[386]--------(control_flow.return_statement) | |
[387]---------(control_flow.return_keyword)return | |
[388]---------(expression) | |
[389]----------(expression_atomic) | |
[390]-----------(value) | |
[391]------------(number) | |
[392]-------------(number.integer_literal)0 | |
[393]----(class.property) | |
[394]-----(meta_attribute.definition) | |
[395]------(meta_attribute.meta_instance) | |
[396]-------(identifier)IterationStop | |
[397]-----(variable.declaration) | |
[398]------(identifier)Stop | |
[399]------(type_specifier) | |
[400]-------(type_data) | |
[401]--------(class.type) | |
[402]---------(identifier)int | |
[403]-----(class.property_getter) | |
[404]------(block) | |
[405]-------(statement) | |
[406]--------(control_flow.return_statement) | |
[407]---------(control_flow.return_keyword)return | |
[408]---------(expression) | |
[409]----------(expression_atomic) | |
[410]-----------(value) | |
[411]------------(identifier)count | |
[412]----(variable_statement) | |
[413]-----(variable) | |
[414]------(variable.declaration_assignment) | |
[415]-------(variable.declaration) | |
[416]--------(identifier)values | |
[417]--------(type_specifier) | |
[418]---------(type_pointer) | |
[419]----------(class.type) | |
[420]-----------(identifier)T | |
[421]-------(operators.assign)= | |
[422]-------(variable.assignment_expression) | |
[423]--------(expression) | |
[424]---------(expression_atomic) | |
[425]----------(value) | |
[426]-----------(identifier)null | |
[427]----(variable_statement) | |
[428]-----(variable) | |
[429]------(variable.declaration_assignment) | |
[430]-------(variable.declaration) | |
[431]--------(identifier)count | |
[432]--------(type_specifier) | |
[433]---------(type_data) | |
[434]----------(class.type) | |
[435]-----------(identifier)int | |
[436]-------(operators.assign)= | |
[437]-------(variable.assignment_expression) | |
[438]--------(expression) | |
[439]---------(expression_atomic) | |
[440]----------(value) | |
[441]-----------(number) | |
[442]------------(number.integer_literal)0 | |
[443]-(statement) | |
[444]--(alias_statement) | |
[445]---(alias_keyword)alias | |
[446]---(identifier)TestArray | |
[447]---(type_specifier) | |
[448]----(type_data) | |
[449]-----(class.type) | |
[450]------(identifier)Template | |
[451]------(class.template_parameters) | |
[452]-------(class.type) | |
[453]--------(identifier)Test | |
[454]-(statement) | |
[455]--(variable_statement) | |
[456]---(variable) | |
[457]----(variable.declaration_assignment) | |
[458]-----(variable.declaration) | |
[459]------(identifier)t1 | |
[460]------(type_specifier) | |
[461]-------(type_data) | |
[462]--------(class.type) | |
[463]---------(identifier)TestArray | |
[464]-----(operators.assign)= | |
[465]-----(variable.assignment_expression) | |
[466]------(expression) | |
[467]-------(expression_atomic) | |
[468]--------(value) | |
[469]---------(function.call) | |
[470]----------(identifier)TestArray | |
[471]----------(function.call.arguments) | |
[472]-----------(function.call.argument_list) | |
[473]------------(expression) | |
[474]-------------(expression_atomic) | |
[475]--------------(value) | |
[476]---------------(number) | |
[477]----------------(number.integer_literal)1 | |
[478]-(statement) | |
[479]--(variable_statement) | |
[480]---(variable) | |
[481]----(variable.declaration_assignment) | |
[482]-----(variable.declaration) | |
[483]------(identifier)t2 | |
[484]------(type_specifier) | |
[485]-------(type_data) | |
[486]--------(class.type) | |
[487]---------(identifier)TestArray | |
[488]-----(operators.assign)= | |
[489]-----(variable.assignment_expression) | |
[490]------(expression) | |
[491]-------(expression_atomic) | |
[492]--------(value) | |
[493]---------(function.call) | |
[494]----------(identifier)TestArray | |
[495]----------(function.call.arguments) | |
[496]-----------(function.call.argument_list) | |
[497]------------(expression) | |
[498]-------------(expression_atomic) | |
[499]--------------(value) | |
[500]---------------(number) | |
[501]----------------(number.integer_literal)1 | |
[502]-(statement) | |
[503]--(variable_statement) | |
[504]---(variable) | |
[505]----(variable.assignment) | |
[506]-----(identifier)t1 | |
[507]-----(access) | |
[508]------(access_array) | |
[509]-------(expression) | |
[510]--------(expression_atomic) | |
[511]---------(value) | |
[512]----------(number) | |
[513]-----------(number.integer_literal)0 | |
[514]-----(operators.assignment) | |
[515]------(operators.add_assign)+= | |
[516]-----(variable.assignment_expression) | |
[517]------(expression) | |
[518]-------(expression_atomic) | |
[519]--------(value) | |
[520]---------(identifier)t2 | |
[521]---------(access) | |
[522]----------(access_array) | |
[523]-----------(expression) | |
[524]------------(expression_atomic) | |
[525]-------------(value) | |
[526]--------------(number) | |
[527]---------------(number.integer_literal)0 | |
[528]-(statement) | |
[529]--(class.definition_statement) | |
[530]---(identifier)MutableArray | |
[531]---(class.template_parameters) | |
[532]----(class.type) | |
[533]-----(identifier)T | |
[534]---(class.inheritance) | |
[535]----(class.type) | |
[536]-----(identifier)Array | |
[537]-----(class.template_parameters) | |
[538]------(class.type) | |
[539]-------(identifier)T | |
[540]---(class.body) | |
[541]----(class.constructor) | |
[542]-----(identifier)MutableArray | |
[543]-----(function.definition.arguments) | |
[544]------(function.definition.argument_list) | |
[545]-------(variable.declaration) | |
[546]--------(identifier)c | |
[547]--------(type_specifier) | |
[548]---------(type_data) | |
[549]----------(class.type) | |
[550]-----------(identifier)int | |
[551]-----(block) | |
[552]------(statement) | |
[553]-------(function.call_statement) | |
[554]--------(function.call) | |
[555]---------(identifier)Array | |
[556]---------(function.call.arguments) | |
[557]----------(function.call.argument_list) | |
[558]-----------(expression) | |
[559]------------(expression_atomic) | |
[560]-------------(value) | |
[561]--------------(identifier)c | |
[562]----(function.definition_statement) | |
[563]-----(identifier)resize | |
[564]-----(function.definition.arguments) | |
[565]------(function.definition.argument_list) | |
[566]-------(variable.declaration) | |
[567]--------(identifier)c | |
[568]--------(type_specifier) | |
[569]---------(type_data) | |
[570]----------(class.type) | |
[571]-----------(identifier)int | |
[572]-----(type_specifier) | |
[573]------(type_data) | |
[574]-------(class.type) | |
[575]--------(identifier)void | |
[576]-----(block) | |
[577]------(statement) | |
[578]-------(function.call_statement) | |
[579]--------(function.call) | |
[580]---------(identifier)clear | |
[581]---------(function.call.arguments) | |
[582]----------(function.call.argument_list) | |
[583]------(statement) | |
[584]-------(variable_statement) | |
[585]--------(variable) | |
[586]---------(variable.assignment) | |
[587]----------(identifier)values | |
[588]----------(operators.assignment) | |
[589]-----------(operators.assign)= | |
[590]----------(variable.assignment_expression) | |
[591]-----------(expression) | |
[592]------------(expression_atomic) | |
[593]-------------(value) | |
[594]--------------(object_create) | |
[595]---------------(new_keyword)new | |
[596]---------------(function.call) | |
[597]----------------(identifier)T | |
[598]----------------(function.call.arguments) | |
[599]-----------------(function.call.argument_list) | |
[600]------------------(expression) | |
[601]-------------------(expression_atomic) | |
[602]--------------------(value) | |
[603]---------------------(default_value) | |
[604]----------------------(default_keyword)default | |
[605]----------------------(class.type) | |
[606]-----------------------(identifier)T | |
[607]---------------(array_specifier) | |
[608]----------------(expression) | |
[609]-----------------(expression_atomic) | |
[610]------------------(value) | |
[611]-------------------(identifier)c | |
[612]------(statement) | |
[613]-------(variable_statement) | |
[614]--------(variable) | |
[615]---------(variable.assignment) | |
[616]----------(identifier)count | |
[617]----------(operators.assignment) | |
[618]-----------(operators.assign)= | |
[619]----------(variable.assignment_expression) | |
[620]-----------(expression) | |
[621]------------(expression_atomic) | |
[622]-------------(value) | |
[623]--------------(identifier)c | |
[624]----(function.definition_statement) | |
[625]-----(identifier)clear | |
[626]-----(function.definition.arguments) | |
[627]------(function.definition.argument_list) | |
[628]-----(type_specifier) | |
[629]------(type_data) | |
[630]-------(class.type) | |
[631]--------(identifier)void | |
[632]-----(block) | |
[633]------(statement) | |
[634]-------(object_destroy_statement) | |
[635]--------(delete_keyword)delete | |
[636]--------(expression) | |
[637]---------(expression_atomic) | |
[638]----------(value) | |
[639]-----------(identifier)values | |
[640]------(statement) | |
[641]-------(variable_statement) | |
[642]--------(variable) | |
[643]---------(variable.assignment) | |
[644]----------(identifier)values | |
[645]----------(operators.assignment) | |
[646]-----------(operators.assign)= | |
[647]----------(variable.assignment_expression) | |
[648]-----------(expression) | |
[649]------------(expression_atomic) | |
[650]-------------(value) | |
[651]--------------(identifier)null | |
[652]-(statement) | |
[653]--(enum.definition_statement) | |
[654]---(identifier)DefaultEnum | |
[655]---(enum.body) | |
[656]----(enum.field) | |
[657]-----(identifier)E0 | |
[658]----(enum.field) | |
[659]-----(identifier)E2 | |
[660]-----(operators.assign)= | |
[661]-----(value) | |
[662]------(number) | |
[663]-------(number.integer_literal)2 | |
[664]----(enum.field) | |
[665]-----(identifier)E3 | |
[666]-(statement) | |
[667]--(enum.definition_statement) | |
[668]---(identifier)StringEnum | |
[669]---(type_specifier) | |
[670]----(type_data) | |
[671]-----(class.type) | |
[672]------(identifier)string | |
[673]---(enum.body) | |
[674]----(enum.field) | |
[675]-----(identifier)SOME | |
[676]-----(operators.assign)= | |
[677]-----(value) | |
[678]------(string)"some" | |
[679]----(enum.field) | |
[680]-----(identifier)PRETTY | |
[681]-----(operators.assign)= | |
[682]-----(value) | |
[683]------(string)"pretty" | |
[684]----(enum.field) | |
[685]-----(identifier)SHIT | |
[686]-----(operators.assign)= | |
[687]-----(value) | |
[688]------(string)"shit" | |
[689]-(statement) | |
[690]--(variable_statement) | |
[691]---(variable) | |
[692]----(variable.declaration) | |
[693]-----(identifier)a1 | |
[694]-----(type_specifier) | |
[695]------(type_data) | |
[696]-------(class.type) | |
[697]--------(identifier)int | |
[698]-(statement) | |
[699]--(variable_statement) | |
[700]---(variable) | |
[701]----(variable.declaration_assignment) | |
[702]-----(variable.declaration) | |
[703]------(identifier)b2 | |
[704]------(type_specifier) | |
[705]-------(type_data) | |
[706]--------(class.type) | |
[707]---------(identifier)float | |
[708]-----(operators.assign)= | |
[709]-----(variable.assignment_expression) | |
[710]------(expression) | |
[711]-------(expression_atomic) | |
[712]--------(value) | |
[713]---------(number) | |
[714]----------(number.float_literal)2.3 | |
[715]-(statement) | |
[716]--(variable_statement) | |
[717]---(variable) | |
[718]----(variable.declaration_assignment) | |
[719]-----(variable.declaration) | |
[720]------(identifier)d | |
[721]------(type_specifier) | |
[722]-------(type_pointer) | |
[723]--------(class.type) | |
[724]---------(identifier)byte | |
[725]-----(operators.assign)= | |
[726]-----(variable.assignment_expression) | |
[727]------(expression) | |
[728]-------(expression_atomic) | |
[729]--------(value) | |
[730]---------(object_create) | |
[731]----------(new_keyword)new | |
[732]----------(identifier)byte | |
[733]----------(array_specifier) | |
[734]-----------(expression) | |
[735]------------(expression_atomic) | |
[736]-------------(value) | |
[737]--------------(number) | |
[738]---------------(number.integer_literal)2 | |
[739]-(statement) | |
[740]--(variable_statement) | |
[741]---(variable) | |
[742]----(variable.assignment) | |
[743]-----(identifier)d | |
[744]-----(access) | |
[745]------(access_array) | |
[746]-------(expression) | |
[747]--------(expression_atomic) | |
[748]---------(value) | |
[749]----------(number) | |
[750]-----------(number.integer_literal)0 | |
[751]-----(operators.assignment) | |
[752]------(operators.assign)= | |
[753]-----(variable.assignment_expression) | |
[754]------(expression) | |
[755]-------(expression_atomic) | |
[756]--------(value) | |
[757]---------(identifier)d | |
[758]---------(access) | |
[759]----------(access_array) | |
[760]-----------(expression) | |
[761]------------(expression_atomic) | |
[762]-------------(value) | |
[763]--------------(number) | |
[764]---------------(number.integer_literal)1 | |
[765]-(statement) | |
[766]--(object_destroy_statement) | |
[767]---(delete_keyword)delete | |
[768]---(expression) | |
[769]----(expression_atomic) | |
[770]-----(value) | |
[771]------(identifier)d | |
[772]-(statement) | |
[773]--(variable_statement) | |
[774]---(variable) | |
[775]----(variable.assignment) | |
[776]-----(identifier)d | |
[777]-----(operators.assignment) | |
[778]------(operators.assign)= | |
[779]-----(variable.assignment_expression) | |
[780]------(expression) | |
[781]-------(expression_atomic) | |
[782]--------(value) | |
[783]---------(identifier)null | |
[784]-(statement) | |
[785]--(using_namespace_statement) | |
[786]---(identifier)Some | |
[787]---(access_struct) | |
[788]----(identifier)Test | |
[789]-(statement) | |
[790]--(variable_statement) | |
[791]---(variable) | |
[792]----(variable.declaration_assignment) | |
[793]-----(variable.declaration) | |
[794]------(identifier)test1 | |
[795]------(type_specifier) | |
[796]-------(type_pointer) | |
[797]--------(class.type) | |
[798]---------(identifier)Namespace | |
[799]--------(access_type) | |
[800]---------(class.type) | |
[801]----------(identifier)Test | |
[802]-----(operators.assign)= | |
[803]-----(variable.assignment_expression) | |
[804]------(expression) | |
[805]-------(expression_atomic) | |
[806]--------(value) | |
[807]---------(object_create) | |
[808]----------(new_keyword)new | |
[809]----------(identifier)Namespace | |
[810]----------(access_struct) | |
[811]-----------(identifier)Test | |
[812]-(statement) | |
[813]--(variable_statement) | |
[814]---(variable) | |
[815]----(variable.declaration_assignment) | |
[816]-----(variable.declaration) | |
[817]------(identifier)test2 | |
[818]------(type_specifier) | |
[819]-------(type_pointer) | |
[820]--------(class.type) | |
[821]---------(identifier)Some | |
[822]--------(access_type) | |
[823]---------(class.type) | |
[824]----------(identifier)Test | |
[825]--------(access_type) | |
[826]---------(class.type) | |
[827]----------(identifier)Namespace | |
[828]--------(access_type) | |
[829]---------(class.type) | |
[830]----------(identifier)Test | |
[831]-----(operators.assign)= | |
[832]-----(variable.assignment_expression) | |
[833]------(expression) | |
[834]-------(expression_atomic) | |
[835]--------(value) | |
[836]---------(object_create) | |
[837]----------(new_keyword)new | |
[838]----------(identifier)Some | |
[839]----------(access_struct) | |
[840]-----------(identifier)Test | |
[841]----------(access_struct) | |
[842]-----------(identifier)Namespace | |
[843]----------(access_struct) | |
[844]-----------(identifier)Test | |
[845]-(statement) | |
[846]--(variable_statement) | |
[847]---(variable) | |
[848]----(variable.assignment) | |
[849]-----(identifier)test1 | |
[850]-----(cast_suffix) | |
[851]-----(operators.assignment) | |
[852]------(operators.add_assign)+= | |
[853]-----(variable.assignment_expression) | |
[854]------(expression) | |
[855]-------(expression_atomic) | |
[856]--------(value) | |
[857]---------(identifier)test2 | |
[858]---------(cast_suffix) | |
[859]-(statement) | |
[860]--(object_destroy_statement) | |
[861]---(delete_keyword)delete | |
[862]---(expression) | |
[863]----(expression_atomic) | |
[864]-----(value) | |
[865]------(identifier)test1 | |
[866]-(statement) | |
[867]--(variable_statement) | |
[868]---(variable) | |
[869]----(variable.assignment) | |
[870]-----(identifier)test1 | |
[871]-----(operators.assignment) | |
[872]------(operators.assign)= | |
[873]-----(variable.assignment_expression) | |
[874]------(expression) | |
[875]-------(expression_atomic) | |
[876]--------(value) | |
[877]---------(identifier)null | |
[878]-(statement) | |
[879]--(object_destroy_statement) | |
[880]---(delete_keyword)delete | |
[881]---(expression) | |
[882]----(expression_atomic) | |
[883]-----(value) | |
[884]------(identifier)test2 | |
[885]-(statement) | |
[886]--(variable_statement) | |
[887]---(variable) | |
[888]----(variable.assignment) | |
[889]-----(identifier)test2 | |
[890]-----(operators.assignment) | |
[891]------(operators.assign)= | |
[892]-----(variable.assignment_expression) | |
[893]------(expression) | |
[894]-------(expression_atomic) | |
[895]--------(value) | |
[896]---------(identifier)null | |
[897]-(statement) | |
[898]--(variable_statement) | |
[899]---(variable) | |
[900]----(variable.declaration_assignment) | |
[901]-----(variable.declaration) | |
[902]------(identifier)wat | |
[903]------(type_specifier) | |
[904]-------(type_data) | |
[905]--------(class.type) | |
[906]---------(identifier)bool | |
[907]-----(operators.assign)= | |
[908]-----(variable.assignment_expression) | |
[909]------(expression) | |
[910]-------(expression_atomic) | |
[911]--------(value) | |
[912]---------(control_flow.inlined_condition) | |
[913]----------(control_flow.inlined_condition_test) | |
[914]-----------(expression) | |
[915]------------(expression_atomic) | |
[916]-------------(value) | |
[917]--------------(identifier)t1 | |
[918]--------------(access) | |
[919]---------------(access_array) | |
[920]----------------(expression) | |
[921]-----------------(expression_atomic) | |
[922]------------------(value) | |
[923]-------------------(number) | |
[924]--------------------(number.integer_literal)0 | |
[925]------------(operators.operation) | |
[926]-------------(operators.conditional_operation) | |
[927]--------------(operators.conditional_greater)> | |
[928]------------(expression_atomic) | |
[929]-------------(value) | |
[930]--------------(identifier)t2 | |
[931]--------------(access) | |
[932]---------------(access_array) | |
[933]----------------(expression) | |
[934]-----------------(expression_atomic) | |
[935]------------------(value) | |
[936]-------------------(number) | |
[937]--------------------(number.integer_literal)0 | |
[938]----------(control_flow.inlined_condition_true) | |
[939]-----------(expression) | |
[940]------------(expression_atomic) | |
[941]-------------(value) | |
[942]--------------(identifier)true | |
[943]----------(control_flow.inlined_condition_false) | |
[944]-----------(expression) | |
[945]------------(expression_atomic) | |
[946]-------------(value) | |
[947]--------------(identifier)false | |
[948]-(statement) | |
[949]--(function.definition_statement) | |
[950]---(identifier)main | |
[951]---(function.definition.arguments) | |
[952]----(function.definition.argument_list) | |
[953]-----(variable.declaration) | |
[954]------(identifier)argv | |
[955]------(type_specifier) | |
[956]-------(type_pointer) | |
[957]--------(class.type) | |
[958]---------(identifier)string | |
[959]-----(variable.declaration) | |
[960]------(identifier)argc | |
[961]------(type_specifier) | |
[962]-------(type_data) | |
[963]--------(class.type) | |
[964]---------(identifier)int | |
[965]---(type_specifier) | |
[966]----(type_data) | |
[967]-----(class.type) | |
[968]------(identifier)int | |
[969]---(block) | |
[970]----(statement) | |
[971]-----(function.definition_statement) | |
[972]------(identifier)sum | |
[973]------(function.definition.arguments) | |
[974]-------(function.definition.argument_list) | |
[975]--------(variable.declaration) | |
[976]---------(identifier)a | |
[977]---------(type_specifier) | |
[978]----------(type_data) | |
[979]-----------(class.type) | |
[980]------------(identifier)int | |
[981]--------(variable.declaration) | |
[982]---------(identifier)b | |
[983]---------(type_specifier) | |
[984]----------(type_data) | |
[985]-----------(class.type) | |
[986]------------(identifier)int | |
[987]------(type_specifier) | |
[988]-------(type_data) | |
[989]--------(class.type) | |
[990]---------(identifier)int | |
[991]------(block) | |
[992]-------(statement) | |
[993]--------(control_flow.return_statement) | |
[994]---------(control_flow.return_keyword)return | |
[995]---------(expression) | |
[996]----------(expression_atomic) | |
[997]-----------(value) | |
[998]------------(identifier)a | |
[999]----------(operators.operation) | |
[1000]-----------(operators.binary_operation) | |
[1001]------------(operators.add)+ | |
[1002]----------(expression_atomic) | |
[1003]-----------(value) | |
[1004]------------(identifier)b | |
[1005]----(statement) | |
[1006]-----(variable_statement) | |
[1007]------(variable) | |
[1008]-------(variable.declaration_assignment) | |
[1009]--------(variable.declaration) | |
[1010]---------(identifier)a2 | |
[1011]---------(type_specifier) | |
[1012]----------(type_data) | |
[1013]-----------(class.type) | |
[1014]------------(identifier)int | |
[1015]--------(operators.assign)= | |
[1016]--------(variable.assignment_expression) | |
[1017]---------(expression) | |
[1018]----------(expression_atomic) | |
[1019]-----------(value) | |
[1020]------------(number) | |
[1021]-------------(number.integer_literal)1 | |
[1022]----(statement) | |
[1023]-----(variable_statement) | |
[1024]------(variable) | |
[1025]-------(variable.declaration_assignment) | |
[1026]--------(variable.declaration) | |
[1027]---------(identifier)a3 | |
[1028]---------(type_specifier) | |
[1029]----------(type_data) | |
[1030]-----------(class.type) | |
[1031]------------(identifier)int | |
[1032]--------(operators.assign)= | |
[1033]--------(variable.assignment_expression) | |
[1034]---------(expression) | |
[1035]----------(expression_atomic) | |
[1036]-----------(value) | |
[1037]------------(identifier)a2 | |
[1038]----(statement) | |
[1039]-----(variable_statement) | |
[1040]------(variable) | |
[1041]-------(variable.declaration) | |
[1042]--------(identifier)b1 | |
[1043]--------(type_specifier) | |
[1044]---------(type_data) | |
[1045]----------(class.type) | |
[1046]-----------(identifier)float | |
[1047]----(statement) | |
[1048]-----(variable_statement) | |
[1049]------(variable) | |
[1050]-------(variable.declaration_assignment) | |
[1051]--------(variable.declaration) | |
[1052]---------(identifier)b3 | |
[1053]---------(type_specifier) | |
[1054]----------(type_data) | |
[1055]-----------(class.type) | |
[1056]------------(identifier)float | |
[1057]--------(operators.assign)= | |
[1058]--------(variable.assignment_expression) | |
[1059]---------(expression) | |
[1060]----------(expression_atomic) | |
[1061]-----------(value) | |
[1062]------------(identifier)b2 | |
[1063]----(statement) | |
[1064]-----(block) | |
[1065]------(statement) | |
[1066]-------(variable_statement) | |
[1067]--------(variable) | |
[1068]---------(variable.declaration) | |
[1069]----------(identifier)c1 | |
[1070]----------(type_specifier) | |
[1071]-----------(type_data) | |
[1072]------------(class.type) | |
[1073]-------------(identifier)string | |
[1074]------(statement) | |
[1075]-------(variable_statement) | |
[1076]--------(variable) | |
[1077]---------(variable.declaration_assignment) | |
[1078]----------(variable.declaration) | |
[1079]-----------(identifier)c2 | |
[1080]-----------(type_specifier) | |
[1081]------------(type_data) | |
[1082]-------------(class.type) | |
[1083]--------------(identifier)string | |
[1084]----------(operators.assign)= | |
[1085]----------(variable.assignment_expression) | |
[1086]-----------(expression) | |
[1087]------------(expression_atomic) | |
[1088]-------------(value) | |
[1089]--------------(string)"test string" | |
[1090]------(statement) | |
[1091]-------(variable_statement) | |
[1092]--------(variable) | |
[1093]---------(variable.declaration_assignment) | |
[1094]----------(variable.declaration) | |
[1095]-----------(identifier)c3 | |
[1096]-----------(type_specifier) | |
[1097]------------(type_data) | |
[1098]-------------(class.type) | |
[1099]--------------(identifier)string | |
[1100]----------(operators.assign)= | |
[1101]----------(variable.assignment_expression) | |
[1102]-----------(expression) | |
[1103]------------(expression_atomic) | |
[1104]-------------(value) | |
[1105]--------------(identifier)c2 | |
[1106]------(statement) | |
[1107]-------(variable_statement) | |
[1108]--------(variable) | |
[1109]---------(variable.assignment) | |
[1110]----------(identifier)c3 | |
[1111]----------(operators.assignment) | |
[1112]-----------(operators.assign)= | |
[1113]----------(variable.assignment_expression) | |
[1114]-----------(expression) | |
[1115]------------(expression_atomic) | |
[1116]-------------(value) | |
[1117]--------------(identifier)c2 | |
[1118]----(statement) | |
[1119]-----(variable_statement) | |
[1120]------(variable) | |
[1121]-------(variable.declaration_assignment) | |
[1122]--------(variable.declaration) | |
[1123]---------(identifier)sum2 | |
[1124]---------(type_specifier) | |
[1125]----------(type_data) | |
[1126]-----------(class.type) | |
[1127]------------(identifier)function | |
[1128]--------(operators.assign)= | |
[1129]--------(variable.assignment_expression) | |
[1130]---------(expression) | |
[1131]----------(expression_atomic) | |
[1132]-----------(value) | |
[1133]------------(function.definition_anonymous) | |
[1134]-------------(function.definition.arguments) | |
[1135]--------------(function.definition.argument_list) | |
[1136]---------------(variable.declaration) | |
[1137]----------------(identifier)v | |
[1138]----------------(type_specifier) | |
[1139]-----------------(type_data) | |
[1140]------------------(class.type) | |
[1141]-------------------(identifier)int | |
[1142]-------------(type_specifier) | |
[1143]--------------(type_data) | |
[1144]---------------(class.type) | |
[1145]----------------(identifier)int | |
[1146]-------------(block) | |
[1147]--------------(statement) | |
[1148]---------------(control_flow.return_statement) | |
[1149]----------------(control_flow.return_keyword)return | |
[1150]----------------(expression) | |
[1151]-----------------(expression_atomic) | |
[1152]------------------(value) | |
[1153]-------------------(function.call) | |
[1154]--------------------(identifier)sum | |
[1155]--------------------(function.call.arguments) | |
[1156]---------------------(function.call.argument_list) | |
[1157]----------------------(expression) | |
[1158]-----------------------(expression_atomic) | |
[1159]------------------------(value) | |
[1160]-------------------------(identifier)v | |
[1161]----------------------(expression) | |
[1162]-----------------------(expression_atomic) | |
[1163]------------------------(value) | |
[1164]-------------------------(identifier)v | |
[1165]----(statement) | |
[1166]-----(variable_statement) | |
[1167]------(variable) | |
[1168]-------(variable.assignment) | |
[1169]--------(identifier)a3 | |
[1170]--------(operators.assignment) | |
[1171]---------(operators.assign)= | |
[1172]--------(variable.assignment_expression) | |
[1173]---------(variable.assignment) | |
[1174]----------(identifier)a1 | |
[1175]----------(operators.assignment) | |
[1176]-----------(operators.assign)= | |
[1177]----------(variable.assignment_expression) | |
[1178]-----------(expression) | |
[1179]------------(expression_atomic) | |
[1180]-------------(operators.operation_prefix) | |
[1181]--------------(operators.subtract)- | |
[1182]-------------(value) | |
[1183]--------------(number) | |
[1184]---------------(number.integer_literal)1 | |
[1185]------------(operators.operation) | |
[1186]-------------(operators.binary_operation) | |
[1187]--------------(operators.add)+ | |
[1188]------------(expression_atomic) | |
[1189]-------------(expression_bracket) | |
[1190]--------------(expression) | |
[1191]---------------(expression_atomic) | |
[1192]----------------(expression_bracket) | |
[1193]-----------------(expression) | |
[1194]------------------(expression_atomic) | |
[1195]-------------------(operators.operation_prefix) | |
[1196]--------------------(operators.subtract)- | |
[1197]-------------------(value) | |
[1198]--------------------(identifier)a2 | |
[1199]------------------(operators.operation) | |
[1200]-------------------(operators.binary_operation) | |
[1201]--------------------(operators.multiply)* | |
[1202]------------------(expression_atomic) | |
[1203]-------------------(value) | |
[1204]--------------------(identifier)b1 | |
[1205]---------------(operators.operation) | |
[1206]----------------(operators.binary_operation) | |
[1207]-----------------(operators.subtract)- | |
[1208]---------------(expression_atomic) | |
[1209]----------------(value) | |
[1210]-----------------(number) | |
[1211]------------------(number.integer_literal)2 | |
[1212]------------(operators.operation) | |
[1213]-------------(operators.binary_operation) | |
[1214]--------------(operators.divide)/ | |
[1215]------------(expression_atomic) | |
[1216]-------------(value) | |
[1217]--------------(identifier)b3 | |
[1218]----(statement) | |
[1219]-----(variable_statement) | |
[1220]------(variable) | |
[1221]-------(variable.assignment) | |
[1222]--------(identifier)a2 | |
[1223]--------(operators.assignment) | |
[1224]---------(operators.add_assign)+= | |
[1225]--------(variable.assignment_expression) | |
[1226]---------(expression) | |
[1227]----------(expression_atomic) | |
[1228]-----------(value) | |
[1229]------------(function.call) | |
[1230]-------------(identifier)sum2 | |
[1231]-------------(function.call.arguments) | |
[1232]--------------(function.call.argument_list) | |
[1233]---------------(expression) | |
[1234]----------------(expression_atomic) | |
[1235]-----------------(value) | |
[1236]------------------(identifier)a1 | |
[1237]----------(operators.operation) | |
[1238]-----------(operators.binary_operation) | |
[1239]------------(operators.subtract)- | |
[1240]----------(expression_atomic) | |
[1241]-----------(value) | |
[1242]------------(identifier)a3 | |
[1243]----(statement) | |
[1244]-----(variable_statement) | |
[1245]------(variable) | |
[1246]-------(variable.assignment) | |
[1247]--------(identifier)a3 | |
[1248]--------(operators.assignment) | |
[1249]---------(operators.assign)= | |
[1250]--------(variable.assignment_expression) | |
[1251]---------(expression) | |
[1252]----------(expression_atomic) | |
[1253]-----------(value) | |
[1254]------------(function.call) | |
[1255]-------------(identifier)sum | |
[1256]-------------(function.call.arguments) | |
[1257]--------------(function.call.argument_list) | |
[1258]---------------(expression) | |
[1259]----------------(expression_atomic) | |
[1260]-----------------(value) | |
[1261]------------------(identifier)a1 | |
[1262]---------------(expression) | |
[1263]----------------(expression_atomic) | |
[1264]-----------------(value) | |
[1265]------------------(identifier)a2 | |
[1266]----(statement) | |
[1267]-----(control_flow.condition_statement) | |
[1268]------(control_flow.if_statement) | |
[1269]-------(control_flow.if_keyword)if | |
[1270]-------(expression) | |
[1271]--------(expression_atomic) | |
[1272]---------(expression_bracket) | |
[1273]----------(expression) | |
[1274]-----------(expression_atomic) | |
[1275]------------(value) | |
[1276]-------------(identifier)a1 | |
[1277]-----------(operators.operation) | |
[1278]------------(operators.conditional_operation) | |
[1279]-------------(operators.conditional_greater)> | |
[1280]-----------(expression_atomic) | |
[1281]------------(value) | |
[1282]-------------(identifier)a2 | |
[1283]-------(statement) | |
[1284]--------(variable_statement) | |
[1285]---------(variable) | |
[1286]----------(variable.assignment) | |
[1287]-----------(identifier)a1 | |
[1288]-----------(operators.assignment) | |
[1289]------------(operators.assign)= | |
[1290]-----------(variable.assignment_expression) | |
[1291]------------(expression) | |
[1292]-------------(expression_atomic) | |
[1293]--------------(value) | |
[1294]---------------(identifier)a2 | |
[1295]------(control_flow.else_if_statement) | |
[1296]-------(control_flow.else_keyword)else | |
[1297]-------(control_flow.if_statement) | |
[1298]--------(control_flow.if_keyword)if | |
[1299]--------(expression) | |
[1300]---------(expression_atomic) | |
[1301]----------(expression_bracket) | |
[1302]-----------(expression) | |
[1303]------------(expression_atomic) | |
[1304]-------------(value) | |
[1305]--------------(identifier)a2 | |
[1306]------------(operators.operation) | |
[1307]-------------(operators.conditional_operation) | |
[1308]--------------(operators.conditional_equal)== | |
[1309]------------(expression_atomic) | |
[1310]-------------(value) | |
[1311]--------------(identifier)a3 | |
[1312]--------(statement) | |
[1313]---------(variable_statement) | |
[1314]----------(variable) | |
[1315]-----------(variable.assignment) | |
[1316]------------(identifier)a2 | |
[1317]------------(operators.assignment) | |
[1318]-------------(operators.assign)= | |
[1319]------------(variable.assignment_expression) | |
[1320]-------------(expression) | |
[1321]--------------(expression_atomic) | |
[1322]---------------(value) | |
[1323]----------------(function.call) | |
[1324]-----------------(identifier)sum2 | |
[1325]-----------------(function.call.arguments) | |
[1326]------------------(function.call.argument_list) | |
[1327]-------------------(expression) | |
[1328]--------------------(expression_atomic) | |
[1329]---------------------(value) | |
[1330]----------------------(identifier)a3 | |
[1331]------(control_flow.else_statement) | |
[1332]-------(control_flow.else_keyword)else | |
[1333]-------(statement) | |
[1334]--------(variable_statement) | |
[1335]---------(variable) | |
[1336]----------(variable.assignment) | |
[1337]-----------(identifier)a3 | |
[1338]-----------(operators.assignment) | |
[1339]------------(operators.assign)= | |
[1340]-----------(variable.assignment_expression) | |
[1341]------------(expression) | |
[1342]-------------(expression_atomic) | |
[1343]--------------(value) | |
[1344]---------------(function.call) | |
[1345]----------------(identifier)sum | |
[1346]----------------(function.call.arguments) | |
[1347]-----------------(function.call.argument_list) | |
[1348]------------------(expression) | |
[1349]-------------------(expression_atomic) | |
[1350]--------------------(value) | |
[1351]---------------------(identifier)a2 | |
[1352]------------------(expression) | |
[1353]-------------------(expression_atomic) | |
[1354]--------------------(value) | |
[1355]---------------------(identifier)a1 | |
[1356]----(statement) | |
[1357]-----(variable_statement) | |
[1358]------(variable) | |
[1359]-------(variable.assignment) | |
[1360]--------(identifier)a1 | |
[1361]--------(operators.assignment) | |
[1362]---------(operators.assign)= | |
[1363]--------(variable.assignment_expression) | |
[1364]---------(expression) | |
[1365]----------(expression_atomic) | |
[1366]-----------(value) | |
[1367]------------(number) | |
[1368]-------------(number.integer_literal)1 | |
[1369]----(statement) | |
[1370]-----(control_flow.for_statement) | |
[1371]------(control_flow.for_keyword)for | |
[1372]------(control_flow.for_stages) | |
[1373]-------(control_flow.for_stage_init) | |
[1374]--------(variable) | |
[1375]---------(variable.declaration_assignment) | |
[1376]----------(variable.declaration) | |
[1377]-----------(identifier)i | |
[1378]-----------(type_specifier) | |
[1379]------------(type_data) | |
[1380]-------------(class.type) | |
[1381]--------------(identifier)int | |
[1382]----------(operators.assign)= | |
[1383]----------(variable.assignment_expression) | |
[1384]-----------(expression) | |
[1385]------------(expression_atomic) | |
[1386]-------------(value) | |
[1387]--------------(number) | |
[1388]---------------(number.integer_literal)1 | |
[1389]-------(control_flow.for_stage_condition) | |
[1390]--------(expression) | |
[1391]---------(expression_atomic) | |
[1392]----------(value) | |
[1393]-----------(identifier)i | |
[1394]---------(operators.operation) | |
[1395]----------(operators.conditional_operation) | |
[1396]-----------(operators.conditional_less_or_equal)<= | |
[1397]---------(expression_atomic) | |
[1398]----------(value) | |
[1399]-----------(number) | |
[1400]------------(number.integer_literal)10 | |
[1401]-------(control_flow.for_stage_iteration) | |
[1402]--------(expression) | |
[1403]---------(expression_atomic) | |
[1404]----------(operators.operation_prefix) | |
[1405]-----------(operators.increment)++ | |
[1406]----------(value) | |
[1407]-----------(identifier)i | |
[1408]------(block) | |
[1409]-------(statement) | |
[1410]--------(control_flow.condition_statement) | |
[1411]---------(control_flow.if_statement) | |
[1412]----------(control_flow.if_keyword)if | |
[1413]----------(expression) | |
[1414]-----------(expression_atomic) | |
[1415]------------(expression_bracket) | |
[1416]-------------(expression) | |
[1417]--------------(expression_atomic) | |
[1418]---------------(value) | |
[1419]----------------(identifier)i | |
[1420]--------------(operators.operation) | |
[1421]---------------(operators.conditional_operation) | |
[1422]----------------(operators.conditional_greater)> | |
[1423]--------------(expression_atomic) | |
[1424]---------------(value) | |
[1425]----------------(number) | |
[1426]-----------------(number.integer_literal)5 | |
[1427]----------(statement) | |
[1428]-----------(control_flow.continue_statement) | |
[1429]------------(control_flow.continue_keyword)continue | |
[1430]-------(statement) | |
[1431]--------(variable_statement) | |
[1432]---------(variable) | |
[1433]----------(variable.assignment) | |
[1434]-----------(identifier)a1 | |
[1435]-----------(operators.assignment) | |
[1436]------------(operators.multiply_assign)*= | |
[1437]-----------(variable.assignment_expression) | |
[1438]------------(expression) | |
[1439]-------------(expression_atomic) | |
[1440]--------------(value) | |
[1441]---------------(identifier)i | |
[1442]----(statement) | |
[1443]-----(variable_statement) | |
[1444]------(variable) | |
[1445]-------(variable.declaration_instantiation) | |
[1446]--------(variable.declaration) | |
[1447]---------(identifier)data | |
[1448]---------(type_specifier) | |
[1449]----------(type_data) | |
[1450]-----------(class.type) | |
[1451]------------(identifier)Array | |
[1452]------------(class.template_parameters) | |
[1453]-------------(class.type) | |
[1454]--------------(identifier)int | |
[1455]--------(function.call.arguments) | |
[1456]---------(function.call.argument_list) | |
[1457]----------(expression) | |
[1458]-----------(expression_atomic) | |
[1459]------------(value) | |
[1460]-------------(number) | |
[1461]--------------(number.integer_literal)1000 | |
[1462]----(statement) | |
[1463]-----(variable_statement) | |
[1464]------(variable) | |
[1465]-------(variable.assignment) | |
[1466]--------(identifier)a1 | |
[1467]--------(operators.assignment) | |
[1468]---------(operators.assign)= | |
[1469]--------(variable.assignment_expression) | |
[1470]---------(expression) | |
[1471]----------(expression_atomic) | |
[1472]-----------(value) | |
[1473]------------(number) | |
[1474]-------------(number.integer_literal)0 | |
[1475]----(statement) | |
[1476]-----(control_flow.foreach_statement) | |
[1477]------(control_flow.foreach_keyword)foreach | |
[1478]------(control_flow.foreach_stage) | |
[1479]-------(variable) | |
[1480]--------(variable.declaration) | |
[1481]---------(identifier)v | |
[1482]---------(type_specifier) | |
[1483]----------(type_data) | |
[1484]-----------(class.type) | |
[1485]------------(identifier)int | |
[1486]-------(value) | |
[1487]--------(identifier)data | |
[1488]------(statement) | |
[1489]-------(variable_statement) | |
[1490]--------(variable) | |
[1491]---------(variable.assignment) | |
[1492]----------(identifier)a1 | |
[1493]----------(operators.assignment) | |
[1494]-----------(operators.multiply_assign)*= | |
[1495]----------(variable.assignment_expression) | |
[1496]-----------(expression) | |
[1497]------------(expression_atomic) | |
[1498]-------------(value) | |
[1499]--------------(identifier)v | |
[1500]----(statement) | |
[1501]-----(control_flow.while_statement) | |
[1502]------(control_flow.while_keyword)while | |
[1503]------(expression) | |
[1504]-------(expression_atomic) | |
[1505]--------(expression_bracket) | |
[1506]---------(expression) | |
[1507]----------(expression_atomic) | |
[1508]-----------(value) | |
[1509]------------(identifier)true | |
[1510]------(block) | |
[1511]-------(statement) | |
[1512]--------(control_flow.condition_statement) | |
[1513]---------(control_flow.if_statement) | |
[1514]----------(control_flow.if_keyword)if | |
[1515]----------(expression) | |
[1516]-----------(expression_atomic) | |
[1517]------------(expression_bracket) | |
[1518]-------------(expression) | |
[1519]--------------(expression_atomic) | |
[1520]---------------(value) | |
[1521]----------------(identifier)a1 | |
[1522]--------------(operators.operation) | |
[1523]---------------(operators.conditional_operation) | |
[1524]----------------(operators.conditional_less)< | |
[1525]--------------(expression_atomic) | |
[1526]---------------(value) | |
[1527]----------------(number) | |
[1528]-----------------(number.integer_literal)0 | |
[1529]----------(statement) | |
[1530]-----------(control_flow.break_statement) | |
[1531]------------(control_flow.break_keyword)break | |
[1532]-------(statement) | |
[1533]--------(expression) | |
[1534]---------(expression_atomic) | |
[1535]----------(value) | |
[1536]-----------(identifier)a1 | |
[1537]----------(operators.operation_suffix) | |
[1538]-----------(operators.decrement)-- | |
[1539]----(statement) | |
[1540]-----(parallel) | |
[1541]------(parallel.block_statement) | |
[1542]-------(parallel.mode) | |
[1543]--------(parallel.local_mode)local | |
[1544]-------(parallel.repeats) | |
[1545]--------(parallel.hardware_repeats)hardware | |
[1546]-------(block) | |
[1547]--------(statement) | |
[1548]---------(variable_statement) | |
[1549]----------(variable) | |
[1550]-----------(variable.declaration) | |
[1551]------------(identifier)index | |
[1552]------------(type_specifier) | |
[1553]-------------(type_data) | |
[1554]--------------(class.type) | |
[1555]---------------(identifier)int | |
[1556]--------(statement) | |
[1557]---------(isc_inlined_statement) | |
[1558]----------(string)"pidx $index" | |
[1559]--------(statement) | |
[1560]---------(variable_statement) | |
[1561]----------(variable) | |
[1562]-----------(variable.declaration_assignment) | |
[1563]------------(variable.declaration) | |
[1564]-------------(identifier)size | |
[1565]-------------(type_specifier) | |
[1566]--------------(type_data) | |
[1567]---------------(class.type) | |
[1568]----------------(identifier)int | |
[1569]------------(operators.assign)= | |
[1570]------------(variable.assignment_expression) | |
[1571]-------------(expression) | |
[1572]--------------(expression_atomic) | |
[1573]---------------(value) | |
[1574]----------------(number) | |
[1575]-----------------(number.integer_literal)1000 | |
[1576]--------(statement) | |
[1577]---------(variable_statement) | |
[1578]----------(variable) | |
[1579]-----------(variable.declaration_assignment) | |
[1580]------------(variable.declaration) | |
[1581]-------------(identifier)start | |
[1582]-------------(type_specifier) | |
[1583]--------------(type_data) | |
[1584]---------------(class.type) | |
[1585]----------------(identifier)int | |
[1586]------------(operators.assign)= | |
[1587]------------(variable.assignment_expression) | |
[1588]-------------(expression) | |
[1589]--------------(expression_atomic) | |
[1590]---------------(value) | |
[1591]----------------(identifier)index | |
[1592]--------------(operators.operation) | |
[1593]---------------(operators.binary_operation) | |
[1594]----------------(operators.multiply)* | |
[1595]--------------(expression_atomic) | |
[1596]---------------(value) | |
[1597]----------------(identifier)size | |
[1598]--------(statement) | |
[1599]---------(variable_statement) | |
[1600]----------(variable) | |
[1601]-----------(variable.declaration_assignment) | |
[1602]------------(variable.declaration) | |
[1603]-------------(identifier)result | |
[1604]-------------(type_specifier) | |
[1605]--------------(type_data) | |
[1606]---------------(class.type) | |
[1607]----------------(identifier)int | |
[1608]------------(operators.assign)= | |
[1609]------------(variable.assignment_expression) | |
[1610]-------------(expression) | |
[1611]--------------(expression_atomic) | |
[1612]---------------(value) | |
[1613]----------------(number) | |
[1614]-----------------(number.integer_literal)0 | |
[1615]--------(statement) | |
[1616]---------(control_flow.for_statement) | |
[1617]----------(control_flow.for_keyword)for | |
[1618]----------(control_flow.for_stages) | |
[1619]-----------(control_flow.for_stage_init) | |
[1620]------------(variable) | |
[1621]-------------(variable.declaration_assignment) | |
[1622]--------------(variable.declaration) | |
[1623]---------------(identifier)i | |
[1624]---------------(type_specifier) | |
[1625]----------------(type_data) | |
[1626]-----------------(class.type) | |
[1627]------------------(identifier)int | |
[1628]--------------(operators.assign)= | |
[1629]--------------(variable.assignment_expression) | |
[1630]---------------(expression) | |
[1631]----------------(expression_atomic) | |
[1632]-----------------(value) | |
[1633]------------------(identifier)start | |
[1634]-----------(control_flow.for_stage_condition) | |
[1635]------------(expression) | |
[1636]-------------(expression_atomic) | |
[1637]--------------(value) | |
[1638]---------------(identifier)i | |
[1639]-------------(operators.operation) | |
[1640]--------------(operators.conditional_operation) | |
[1641]---------------(operators.conditional_less)< | |
[1642]-------------(expression_atomic) | |
[1643]--------------(value) | |
[1644]---------------(identifier)start | |
[1645]-------------(operators.operation) | |
[1646]--------------(operators.binary_operation) | |
[1647]---------------(operators.add)+ | |
[1648]-------------(expression_atomic) | |
[1649]--------------(value) | |
[1650]---------------(identifier)size | |
[1651]-----------(control_flow.for_stage_iteration) | |
[1652]------------(expression) | |
[1653]-------------(expression_atomic) | |
[1654]--------------(operators.operation_prefix) | |
[1655]---------------(operators.increment)++ | |
[1656]--------------(value) | |
[1657]---------------(identifier)i | |
[1658]----------(statement) | |
[1659]-----------(variable_statement) | |
[1660]------------(variable) | |
[1661]-------------(variable.assignment) | |
[1662]--------------(identifier)result | |
[1663]--------------(operators.assignment) | |
[1664]---------------(operators.assign)= | |
[1665]--------------(variable.assignment_expression) | |
[1666]---------------(expression) | |
[1667]----------------(expression_atomic) | |
[1668]-----------------(value) | |
[1669]------------------(identifier)result | |
[1670]----------------(operators.operation) | |
[1671]-----------------(operators.binary_operation) | |
[1672]------------------(operators.add)+ | |
[1673]----------------(expression_atomic) | |
[1674]-----------------(value) | |
[1675]------------------(identifier)i | |
[1676]----(statement) | |
[1677]-----(parallel) | |
[1678]------(parallel.group_statement) | |
[1679]-------(parallel.mode) | |
[1680]--------(parallel.local_mode)local | |
[1681]-------(block) | |
[1682]--------(statement) | |
[1683]---------(variable_statement) | |
[1684]----------(variable) | |
[1685]-----------(variable.declaration_assignment) | |
[1686]------------(variable.declaration) | |
[1687]-------------(identifier)result | |
[1688]-------------(type_specifier) | |
[1689]--------------(type_data) | |
[1690]---------------(class.type) | |
[1691]----------------(identifier)int | |
[1692]------------(operators.assign)= | |
[1693]------------(variable.assignment_expression) | |
[1694]-------------(expression) | |
[1695]--------------(expression_atomic) | |
[1696]---------------(value) | |
[1697]----------------(number) | |
[1698]-----------------(number.integer_literal)0 | |
[1699]--------(statement) | |
[1700]---------(control_flow.for_statement) | |
[1701]----------(control_flow.for_keyword)for | |
[1702]----------(control_flow.for_stages) | |
[1703]-----------(control_flow.for_stage_init) | |
[1704]------------(variable) | |
[1705]-------------(variable.declaration_assignment) | |
[1706]--------------(variable.declaration) | |
[1707]---------------(identifier)i | |
[1708]---------------(type_specifier) | |
[1709]----------------(type_data) | |
[1710]-----------------(class.type) | |
[1711]------------------(identifier)int | |
[1712]--------------(operators.assign)= | |
[1713]--------------(variable.assignment_expression) | |
[1714]---------------(expression) | |
[1715]----------------(expression_atomic) | |
[1716]-----------------(value) | |
[1717]------------------(number) | |
[1718]-------------------(number.integer_literal)0 | |
[1719]-----------(control_flow.for_stage_condition) | |
[1720]------------(expression) | |
[1721]-------------(expression_atomic) | |
[1722]--------------(value) | |
[1723]---------------(identifier)i | |
[1724]-------------(operators.operation) | |
[1725]--------------(operators.conditional_operation) | |
[1726]---------------(operators.conditional_less)< | |
[1727]-------------(expression_atomic) | |
[1728]--------------(value) | |
[1729]---------------(number) | |
[1730]----------------(number.integer_literal)1000 | |
[1731]-----------(control_flow.for_stage_iteration) | |
[1732]------------(expression) | |
[1733]-------------(expression_atomic) | |
[1734]--------------(operators.operation_prefix) | |
[1735]---------------(operators.increment)++ | |
[1736]--------------(value) | |
[1737]---------------(identifier)i | |
[1738]----------(statement) | |
[1739]-----------(variable_statement) | |
[1740]------------(variable) | |
[1741]-------------(variable.assignment) | |
[1742]--------------(identifier)result | |
[1743]--------------(operators.assignment) | |
[1744]---------------(operators.assign)= | |
[1745]--------------(variable.assignment_expression) | |
[1746]---------------(expression) | |
[1747]----------------(expression_atomic) | |
[1748]-----------------(value) | |
[1749]------------------(identifier)result | |
[1750]----------------(operators.operation) | |
[1751]-----------------(operators.binary_operation) | |
[1752]------------------(operators.subtract)- | |
[1753]----------------(expression_atomic) | |
[1754]-----------------(value) | |
[1755]------------------(identifier)i | |
[1756]-------(block) | |
[1757]--------(statement) | |
[1758]---------(variable_statement) | |
[1759]----------(variable) | |
[1760]-----------(variable.declaration_assignment) | |
[1761]------------(variable.declaration) | |
[1762]-------------(identifier)result | |
[1763]-------------(type_specifier) | |
[1764]--------------(type_data) | |
[1765]---------------(class.type) | |
[1766]----------------(identifier)int | |
[1767]------------(operators.assign)= | |
[1768]------------(variable.assignment_expression) | |
[1769]-------------(expression) | |
[1770]--------------(expression_atomic) | |
[1771]---------------(value) | |
[1772]----------------(number) | |
[1773]-----------------(number.integer_literal)0 | |
[1774]--------(statement) | |
[1775]---------(control_flow.for_statement) | |
[1776]----------(control_flow.for_keyword)for | |
[1777]----------(control_flow.for_stages) | |
[1778]-----------(control_flow.for_stage_init) | |
[1779]------------(variable) | |
[1780]-------------(variable.declaration_assignment) | |
[1781]--------------(variable.declaration) | |
[1782]---------------(identifier)i | |
[1783]---------------(type_specifier) | |
[1784]----------------(type_data) | |
[1785]-----------------(class.type) | |
[1786]------------------(identifier)int | |
[1787]--------------(operators.assign)= | |
[1788]--------------(variable.assignment_expression) | |
[1789]---------------(expression) | |
[1790]----------------(expression_atomic) | |
[1791]-----------------(value) | |
[1792]------------------(number) | |
[1793]-------------------(number.integer_literal)1000 | |
[1794]-----------(control_flow.for_stage_condition) | |
[1795]------------(expression) | |
[1796]-------------(expression_atomic) | |
[1797]--------------(value) | |
[1798]---------------(identifier)i | |
[1799]-------------(operators.operation) | |
[1800]--------------(operators.conditional_operation) | |
[1801]---------------(operators.conditional_less)< | |
[1802]-------------(expression_atomic) | |
[1803]--------------(value) | |
[1804]---------------(number) | |
[1805]----------------(number.integer_literal)2000 | |
[1806]-----------(control_flow.for_stage_iteration) | |
[1807]------------(expression) | |
[1808]-------------(expression_atomic) | |
[1809]--------------(operators.operation_prefix) | |
[1810]---------------(operators.increment)++ | |
[1811]--------------(value) | |
[1812]---------------(identifier)i | |
[1813]----------(statement) | |
[1814]-----------(variable_statement) | |
[1815]------------(variable) | |
[1816]-------------(variable.assignment) | |
[1817]--------------(identifier)result | |
[1818]--------------(operators.assignment) | |
[1819]---------------(operators.assign)= | |
[1820]--------------(variable.assignment_expression) | |
[1821]---------------(expression) | |
[1822]----------------(expression_atomic) | |
[1823]-----------------(value) | |
[1824]------------------(identifier)result | |
[1825]----------------(operators.operation) | |
[1826]-----------------(operators.binary_operation) | |
[1827]------------------(operators.add)+ | |
[1828]----------------(expression_atomic) | |
[1829]-----------------(value) | |
[1830]------------------(identifier)i |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// namespaces keeps identifiers in named scopes. | |
namespace Some.Test.Namespace | |
{ | |
// class with MetaAttribute attribute instance will be available as meta-attribute. | |
[MetaAttribute] | |
class Something | |
{ | |
// constructor is called on meta-attribute instantiation. | |
Something(n:^string) | |
{ | |
name = n; | |
} | |
// name variable of managed string type. | |
// managed object is just reference counted wrapper of any type. | |
// (managed objects works with smart pointers behind the scene). | |
name:^string = null; | |
} | |
// meta-attributes can be instantiated with one or more meta-info blocks. | |
[Something("string automatically wrapped in managed object")] | |
[Fuckin.Amazin.Attribute, And.Another.Attribute] | |
// internal class is visible only in whole module, it's not public. | |
internal class Test // class definition. | |
{ | |
// default access mode is: public. | |
// static variable named 'default' will be marked as default type value. | |
// if static 'default' variable is not specified, parameterless constructor | |
// will be used. | |
static default:Test = Test(0); | |
// public is visible for whole application. | |
public Test(v:int) | |
{ | |
V = v; | |
} | |
// private member is visible only in instance scope. | |
private ~Test() | |
{ | |
V = 0; | |
} | |
[ShittyOperator] | |
// this is static operator method definition. | |
public static +(a:Test, b:Test):Test | |
{ | |
return Test(a.V + b.V); // access to structure fields is done by dot. | |
} | |
// meta-attributes can be applied to: classes, methods, properties and functions. | |
[DunnoWhyImFor] | |
// properties are defined like variables but have specified getter and setter. | |
public V:int | |
{ | |
get { return m_v; } | |
internal set { m_v = value; } | |
} | |
// protected member is visible for class and inheritance scope. | |
protected m_v:int = 0; | |
} | |
} | |
// class template (not a generic!). | |
class Array<T> | |
{ | |
Array(c:int) | |
{ | |
values = new T(default T)[c]; | |
count = c; | |
} | |
~Array() | |
{ | |
delete values; | |
values = null; | |
} | |
[](v:int):T | |
{ | |
return values[v]; | |
} | |
// meta-attribute to mark property as for-each-loop iteration (by index) start index. | |
[IterationStart] | |
Start:int | |
{ | |
get { return 0; } | |
} | |
// meta-attribute to mark property as for-each-loop iteration (by index) stop index. | |
[IterationStop] | |
Stop:int | |
{ | |
get { return count; } | |
} | |
values:*T = null; | |
count:int = 0; | |
} | |
// TestArray is alias for Template<Test>. | |
alias TestArray:Template<Test>; | |
// some template usage. | |
t1:TestArray = TestArray(1); | |
t2:TestArray = TestArray(1); | |
t1[0] += t2[0]; | |
// class inheritance. | |
class MutableArray<T> : Array<T> | |
{ | |
MutableArray(c:int) | |
{ | |
Array(c); | |
} | |
resize(c:int):void | |
{ | |
clear(); | |
values = new T(default T)[c]; | |
count = c; | |
} | |
clear():void | |
{ | |
delete values; | |
values = null; | |
} | |
} | |
// enumeration (default values type is: int). | |
enum DefaultEnum | |
{ | |
E0, // it's the same as: E0 = default int. | |
E2 = 2, | |
E3 | |
} | |
// enumeration can have specified values type. | |
enum StringEnum:string | |
{ | |
SOME = "some", | |
PRETTY = "pretty", | |
SHIT = "shit" | |
} | |
// variables in global scope. | |
a1:int; | |
b2:float = 2.3; | |
d:*byte = new byte[2]; // create new object with specified items count as pointer. | |
d[0] = d[1]; // array access. | |
delete d; // delete object at pointer location. | |
d = null; | |
// from here we will use Some.Test namespace. | |
using namespace Some.Test; | |
test1:*Namespace.Test = new Namespace.Test; | |
test2:*Some.Test.Namespace.Test = new Some.Test.Namespace.Test; | |
// casting to another type is done by '->' operator, after which you specify target type. | |
// if you does not specify target type, it will cast to value (from pointer or object). | |
test1-> += test2->; | |
delete test1; test1 = null; | |
delete test2; test2 = null; | |
// inlined condition. | |
// i know: this is very ugly syntax, but hey - at least it's works and it's simple :> | |
wat:bool = ?(t1[0] > t2[0]; true; false); | |
// entry point. | |
main(argv:*string, argc:int):int | |
{ | |
// functions (can be defined inside another function). | |
sum(a:int, b:int):int | |
{ | |
return a + b; | |
} | |
// variables. | |
a2:int = 1; | |
a3:int = a2; | |
b1:float; | |
b3:float = b2; | |
{ // scope block. | |
c1: // inlined comments. | |
string; | |
c2:string = "test string"; | |
c3:string = c2; | |
c3 = c2; | |
} | |
// delegates (anonymous functions). | |
sum2:function = @(v:int):int { return sum(v, v); }; | |
// arithmetics. | |
a3 = a1 = -1 + /* ignored */ ((-a2 * b1) - 2) / b3; | |
a2 += sum2(a1) - a3; | |
// function call. | |
a3 = sum(a1, a2); | |
// control flow: conditions. | |
if(a1 > a2) | |
a1 = a2; | |
else if(a2 == a3) | |
a2 = sum2(a3); | |
else | |
a3 = sum(a2, a1); | |
// control flow: for-loop. | |
a1 = 1; | |
for(i:int = 1; i <= 10; ++i) | |
{ | |
if(i > 5) continue; | |
a1 *= i; | |
} | |
// control flow: for-each-loop. | |
data:Array<int>(1000); | |
a1 = 0; | |
foreach(v:int in data) | |
a1 *= v; | |
// control flow: while-loop. | |
while(true) | |
{ | |
if(a1 < 0) break; | |
a1--; | |
} | |
// parallel block. | |
// you specify jumping scope mode (local, parent, global) | |
// and threads count (hardware or any integer). | |
// local jumping scope: there cannot be any function/method calls. | |
// parent jumping scope: there can be calls to function/method in parent thread code scope. | |
// global jumping scope: there can be any function/method calls. | |
// this code block will be executed on every hardware thread. | |
// while parallel code is executed, main thread is paused. | |
parallel local hardware | |
{ | |
index:int; | |
isc "pidx $index"; // inlined intuicio assembler code. | |
size:int = 1000; | |
start:int = index * size; | |
result:int = 0; | |
for(i:int = start; i < start + size; ++i) | |
result = result + i; | |
} | |
// parallel group. | |
// group is specified by separated code blocks delimited by 'with' keyword. | |
// this code blocks will be executed on separated threads. | |
parallel local | |
{ | |
result:int = 0; | |
for(i:int = 0; i < 1000; ++i) | |
result = result - i; | |
} | |
with | |
{ | |
result:int = 0; | |
for(i:int = 1000; i < 2000; ++i) | |
result = result + i; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment