diff --git a/AST.jai b/AST.jai index ff1efb1..b769687 100644 --- a/AST.jai +++ b/AST.jai @@ -8,11 +8,6 @@ AST_Kind :: enum { Function; Return; - // @Incomplete(nb): Should these three really be their own block types? - // Maybe they at least shouldn't need to have their own tokens... - Properties; - Meta; - Instance; //== // Directives If_Directive; @@ -469,23 +464,19 @@ pretty_print_declaration :: (declaration : *AST_Node, indentation : int, builder append(builder, "#if "); } - if declaration.kind == .Properties { - append(builder, "properties"); - if declaration.name.count > 0 { - print_to_builder(builder, " %", declaration.name); - } - } else if declaration.kind == .Instance { - append(builder, "instance"); - } else if declaration.kind == .Meta { - append(builder, "meta"); + if declaration.kind == .Struct { + append(builder, "struct "); + } else if declaration.kind == .CBuffer { + append(builder, "constant_buffer "); } - else { - if declaration.kind == .Struct { - append(builder, "struct "); - } else if declaration.kind == .CBuffer { - append(builder, "constant_buffer "); + print_to_builder(builder, "%", declaration.name); + + if declaration.kind == .CBuffer { + for hint : declaration.hint_tokens { + if hint.string_value.count > 0 { + print_to_builder(builder, " (@%)", hint.string_value); + } } - print_to_builder(builder, "%", declaration.name); } if declaration.kind == .Function && declaration.token.kind == .TOKEN_IDENTIFIER{ diff --git a/Check.jai b/Check.jai index b0a8a58..d2599a6 100644 --- a/Check.jai +++ b/Check.jai @@ -1043,21 +1043,6 @@ declare_struct :: (checker : *Checker, node : *AST_Node) -> Type_Variable_Handle return declare_struct(checker, node, node.name); } -declare_properties :: (checker : *Checker, node : *AST_Node) -> Type_Variable_Handle { - name := ifx node.name.count == 0 then "properties" else node.name; - - if node.name.count > 0 { - checker.ctx.property_name = name; - } - type_var := declare_struct(checker, node, name); - var := from_handle(checker, type_var); - var.type = .Properties; - var.typename = "properties"; - var.resource_index = checker.current_buffer_index; - checker.current_buffer_index += 1; - return type_var; -} - declare_cbuffer :: (checker : *Checker, node : *AST_Node) -> Type_Variable_Handle { type_var := declare_struct(checker, node); var := from_handle(checker, type_var); @@ -1779,8 +1764,6 @@ check_declaration :: (checker : *Checker, declaration : *AST_Node) { } else { fun_handle := declare_function(checker, declaration); } - } else if declaration.kind == .Properties { - declare_properties(checker, declaration); } else if declaration.kind == .Struct { declare_struct(checker, declaration); } else if declaration.kind == .CBuffer { @@ -2450,16 +2433,6 @@ print_type_variable :: (ctx : *Compiler_Context, builder : *String_Builder, vari node := variable.source_node; if node { if node.kind == { - case .Properties; { - if node.name.count > 0 { - print_to_builder(builder, "% : ", node.name); - } - - append(builder, "properties"); - } - case .Meta; { - append(builder, "meta"); - } case .Function; #through; case .Struct; #through; case .CBuffer; #through; diff --git a/Codegen.jai b/Codegen.jai index 092d8bd..1f22e0b 100644 --- a/Codegen.jai +++ b/Codegen.jai @@ -5,7 +5,6 @@ ///////////////////////////////////// //~ nbr: Codegen TODOs // -// [ ] Prefix output of property values with __PROPERTIES so we don't get name clashes Output_Language :: enum { HLSL; @@ -99,13 +98,6 @@ emit_field :: (state : *Codegen_State, node : *AST_Node, indentation : int) { print_to_builder(*state.builder, "% ", hlsl_type_to_string(field)); - if field.struct_field_parent { - parent_tv := from_handle(state.result.type_variables, field.struct_field_parent.type_variable); - - if parent_tv.typename == "properties" { - append(*state.builder, "__PROPERTIES__"); - } - } print_to_builder(*state.builder, "%", node.name); if field.type == .Sampler { @@ -212,56 +204,6 @@ emit_call :: (state : *Codegen_State, node : *AST_Node, indentation : int) { append(*state.builder, ")"); } -emit_properties :: (state : *Codegen_State, node : *AST_Node, indentation : int) { - find_result := find_symbol(state.result.scope_stack, ifx node.name.count > 0 then node.name else "properties", state.current_scope); - - if !find_result { - message : Compiler_Message; - message.message_kind = .Internal_Error; - message.path = state.path; - message.message = "Attempting to generate undeclared properties buffer. This should never happen at this stage."; - array_add(*state.result.messages, message); - } - assert(find_result != null, "Attempting to generate undeclared properties buffer. This should never happen at this stage."); - - variable := from_handle(state.result.type_variables, find_result.type_variable); - - print_to_builder(*state.builder, "cbuffer __PROPERTIES : register(b%) \n{\n", variable.resource_index); - - previous_scope := state.current_scope; - state.current_scope = variable.scope; - - resources : Static_Array(*AST_Node, 8); - - for child : node.children { - if child.kind == .FieldList { - for field : child.children { - tv := from_handle(state.result.type_variables, field.type_variable); - if tv.type == .Sampler || tv.type == .Texture2D { - array_add(*resources, field); - continue; - } - emit_node(state, field, 1); - - append(*state.builder, ";\n"); - } - } - } - - append(*state.builder, "}\n\n"); - - for i : 0..resources.count - 1 { - resource := resources[i]; - emit_node(state, resource, 0); - - append(*state.builder, ";\n"); - } - - append(*state.builder, "\n"); - - state.current_scope = previous_scope; -} - emit_function :: (state : *Codegen_State, node : *AST_Node, indentation : int, emit_body := true) { name := get_actual_function_name(node); find_result := find_symbol(state.result.scope_stack, name, state.current_scope); @@ -407,10 +349,7 @@ emit_node :: (state : *Codegen_State, node : *AST_Node, indentation : int) { } case .Float; { print_to_builder(*state.builder, "%f", formatFloat(node.float_value, zero_removal=.ONE_ZERO_AFTER_DECIMAL)); - } - case .Properties; { - - } + } case .Field; { emit_field(state, node, indentation); } @@ -422,23 +361,11 @@ emit_node :: (state : *Codegen_State, node : *AST_Node, indentation : int) { indent(*state.builder, indentation); type_var := from_handle(state.result.type_variables, node.type_variable); - is_properties := type_var.typename == "properties"; - if !is_properties { - if type_var.struct_field_parent { - parent_tv := from_handle(state.result.type_variables, type_var.struct_field_parent.type_variable); - - if parent_tv.typename == "properties" { - append(*state.builder, "__PROPERTIES__"); - } - } - print_to_builder(*state.builder, "%", node.name); - } + print_to_builder(*state.builder, "%", node.name); if node.children.count > 0 { - if !is_properties { - append(*state.builder, "."); - } + append(*state.builder, "."); emit_node(state, node.children[0], 0); } } @@ -601,9 +528,6 @@ emit_declaration :: (state : *Codegen_State, node : *AST_Node) { case .Function; { emit_function(state, node, 0); } - case .Properties; { - emit_properties(state, node, 0); - } case .CBuffer; { emit_cbuffer(state, node, 0); } diff --git a/Ink.jai b/Ink.jai index f744cec..c965cb3 100644 --- a/Ink.jai +++ b/Ink.jai @@ -228,12 +228,22 @@ run_compile_test :: (path : string, output_type : Output_Type = 0) -> Result, Co } for cb : ctx.cbuffers { - print_to_builder(*sb, "[constant_buffer] - % - %\n", cb.name, cb.buffer_index); + print_to_builder(*sb, "[constant_buffer] - % - %", cb.name, cb.buffer_index); + + if cb.hints.count > 0 { + for hint : cb.hints { + print_to_builder(*sb, " (@%)", hint.custom_hint_name); + } + } + + append(*sb, "\n"); indent(*sb, 1); for field : cb.fields { append(*sb, "[field] - "); - pretty_print_field(*sb, *field.base_field); + pretty_print_field(*sb, *field); + append(*sb, "\n"); + indent(*sb, 1); } } diff --git a/Lexing.jai b/Lexing.jai index 996a60a..f314a7e 100644 --- a/Lexing.jai +++ b/Lexing.jai @@ -91,7 +91,7 @@ Token_Kind :: enum { TOKEN_OUT; TOKEN_PIXEL; - TOKEN_PROPERTIES; + // TOKEN_PROPERTIES; TOKEN_RETURN; TOKEN_REGISTER; @@ -243,7 +243,7 @@ identifier_kind :: (using lexer : *Lexer) -> Token_Kind { if identifier == "optional" return .TOKEN_OPTIONAL; if identifier == "out" return .TOKEN_OUT; if identifier == "pixel" return .TOKEN_PIXEL; - if identifier == "properties" return .TOKEN_PROPERTIES; + // if identifier == "properties" return .TOKEN_PROPERTIES; if identifier == "return" return .TOKEN_RETURN; if identifier == "register" return .TOKEN_REGISTER; if identifier == "struct" return .TOKEN_STRUCT; diff --git a/Parsing.jai b/Parsing.jai index fe79755..e810d8d 100644 --- a/Parsing.jai +++ b/Parsing.jai @@ -75,7 +75,7 @@ parse_rules :: #run -> [(cast(int)Token_Kind.TOKEN_ERROR) + 1]Parse_Rule { rules[Token_Kind.TOKEN_RIGHTBRACKET] = .{null, null, .PREC_NONE}; rules[Token_Kind.TOKEN_COMMA] = .{null, null, .PREC_NONE}; rules[Token_Kind.TOKEN_DOT] = .{null, dot, .PREC_CALL}; - rules[Token_Kind.TOKEN_PROPERTIES] = .{named_variable, null, .PREC_CALL}; + // rules[Token_Kind.TOKEN_PROPERTIES] = .{named_variable, null, .PREC_CALL}; rules[Token_Kind.TOKEN_MINUS] = .{unary, binary, .PREC_TERM}; rules[Token_Kind.TOKEN_PLUS] = .{null, binary, .PREC_TERM}; rules[Token_Kind.TOKEN_SEMICOLON] = .{null, null, .PREC_NONE}; @@ -535,7 +535,7 @@ new_builtin_function_node :: (ctx : *Compiler_Context, name : string, members : } get_field_list :: (struct_or_func : *AST_Node) -> *AST_Node { - assert(struct_or_func.kind == .Function || struct_or_func.kind == .Struct || struct_or_func.kind == .Properties); + assert(struct_or_func.kind == .Function || struct_or_func.kind == .Struct || struct_or_func.kind == .CBuffer); return struct_or_func.children[0]; } @@ -1368,67 +1368,8 @@ function_declaration :: (parse_state : *Parse_State, identifier_token : *Token, return node; } -instance_block :: (parse_state : *Parse_State) -> *AST_Node { - node : *AST_Node; - - source_location : Source_Range; - source_location.begin = parse_state.current; - - consume(parse_state, .TOKEN_LEFTBRACE, "Expect '{' after 'instance' keyword"); - properties := field_list(parse_state, .Semicolon); - - node = make_node(parse_state, .Instance); - add_child(node, properties); - - consume(parse_state, .TOKEN_RIGHTBRACE, "Expect '}' after instance block"); - source_location.end = parse_state.previous; - node.source_location = source_location; - - return node; -} - -meta_block :: (parse_state : *Parse_State) -> *AST_Node { - node : *AST_Node; - - source_location : Source_Range; - source_location.begin = parse_state.current; - - consume(parse_state, .TOKEN_LEFTBRACE, "Expect '{' after 'meta' keyword"); - properties := field_list(parse_state, .Semicolon); - - node = make_node(parse_state, .Meta); - add_child(node, properties); - - consume(parse_state, .TOKEN_RIGHTBRACE, "Expect '}' after meta block"); - source_location.end = parse_state.previous; - node.source_location = source_location; - - return node; -} - -property_block :: (parse_state : *Parse_State, identifier_token : *Token = null) -> *AST_Node { - node : *AST_Node; - source_location : Source_Range; - source_location.begin = parse_state.current; - - consume(parse_state, .TOKEN_LEFTBRACE, "Expect '{' after 'property' keyword"); - properties := field_list(parse_state, .Semicolon); - - node = make_node(parse_state, .Properties); - if identifier_token { - node.name = identifier_token.ident_value; - } - add_child(node, properties); - - consume(parse_state, .TOKEN_RIGHTBRACE, "Expect '}' after 'property' keyword"); - source_location.end = parse_state.previous; - node.source_location = source_location; - - return node; -} - constant_buffer :: (parse_state : *Parse_State, identifier_token : *Token = null) -> *AST_Node { - node : *AST_Node; + node : *AST_Node = make_node(parse_state, .CBuffer); source_location : Source_Range; source_location.begin = parse_state.current; @@ -1446,7 +1387,6 @@ constant_buffer :: (parse_state : *Parse_State, identifier_token : *Token = null consume(parse_state, .TOKEN_LEFTBRACE, "Expect '{' after 'constant_buffer' keyword"); buffer := field_list(parse_state, .Semicolon); - node = make_node(parse_state, .CBuffer); if identifier_token { node.name = identifier_token.ident_value; } @@ -1488,8 +1428,6 @@ const_declaration :: (parse_state : *Parse_State, identifier_token : *Token) -> return struct_declaration(parse_state, identifier_token); } else if check(parse_state, .TOKEN_LEFTPAREN) { return function_declaration(parse_state, identifier_token, .None); - } else if match(parse_state, .TOKEN_PROPERTIES) { - return property_block(parse_state, identifier_token); } else if match(parse_state, .TOKEN_CONSTANT_BUFFER) { return constant_buffer(parse_state, identifier_token); } @@ -1499,13 +1437,7 @@ const_declaration :: (parse_state : *Parse_State, identifier_token : *Token) -> declaration :: (parse_state : *Parse_State) -> *AST_Node { skip_statement := false; decl_node : *AST_Node; - if match(parse_state, .TOKEN_PROPERTIES) { - decl_node = property_block(parse_state); - } else if match(parse_state, .TOKEN_INSTANCE) { - decl_node = instance_block(parse_state); - } else if match(parse_state, .TOKEN_META) { - decl_node = meta_block(parse_state); - } else if match(parse_state, .TOKEN_VERTEX) { + if match(parse_state, .TOKEN_VERTEX) { vertex_token := parse_state.previous; identifier := parse_state.current; diff --git a/first.jai b/first.jai index 01e86a8..d12d438 100644 --- a/first.jai +++ b/first.jai @@ -21,38 +21,27 @@ build :: () { args := options.compile_time_command_line; - intercept_flags: Intercept_Flags; - plugin_start_index := -1; + profile : bool = false; for arg : args { if arg == { case "check"; { options.output_type = .NO_OUTPUT; } - } + case "profile"; { - it := args[it_index]; - - if !it continue; - - if it[0] == #char "+" { - plugin_start_index = it_index; + } } } + intercept_flags: Intercept_Flags; plugins_to_create: [..] Plugin_To_Create; - tracy : Plugin_To_Create; - tracy.name = "tracy"; - array_add(*plugins_to_create, tracy); - // got_error := false; - // if plugin_start_index >= 0 { - // success:, plugins_to_create = parse_plugin_arguments(args, plugin_start_index); - // if !success got_error = true; - // } - - // if got_error { - // exit(1); - // } + + if profile { + tracy : Plugin_To_Create; + tracy.name = "tracy"; + array_add(*plugins_to_create, tracy); + } success := init_plugins(plugins_to_create, *plugins, w); if !success { @@ -63,7 +52,6 @@ build :: () { new_path: [..] string; array_add(*new_path, ..options.import_path); array_add(*new_path, "modules"); - // array_add(*new_path, "modules/shader_parsing"); options.import_path = new_path; options.output_executable_name = EXECUTABLE_NAME; diff --git a/module.jai b/module.jai index 8cd9cab..d02ae0e 100644 --- a/module.jai +++ b/module.jai @@ -113,23 +113,10 @@ Entry_Point :: struct { return_value : Field; } -Property_Field :: struct { - base_field : Field; - - // @Incomplete(nb): Editor information, min max, etc. - // This should also be compiled out for ship -} - -Properties :: struct { - fields : [..]Property_Field; - - buffer_index : u32; -} - Constant_Buffer :: struct { name : string; - fields : Static_Array(Property_Field, 16); + fields : Static_Array(Field, 16); hints : [..]Field_Hint; @@ -157,8 +144,6 @@ Compiler_Context :: struct { scope_stack : Scope_Stack; type_variables : [..]Type_Variable; - property_name : string; - vertex_entry_point : struct { node : *AST_Node; name : string; @@ -171,8 +156,6 @@ Compiler_Context :: struct { return_value : Field; } - properties : Properties; //@Note(niels): We'll deprecate this in favor of just marking a constant buffer with a hint on how you'd want to use it - max_constant_buffers :: 16; cbuffers : Static_Array(Constant_Buffer, max_constant_buffers); @@ -254,7 +237,7 @@ Min_Field_Name :: 10; pretty_print_field :: (builder : *String_Builder, field : *Field) { if field.name.count > 0 { print_to_builder(builder, "% ", field.name); - append(builder, "- "); + append(builder, ": "); } else { append(builder, "return - "); } @@ -283,10 +266,17 @@ pretty_print_field :: (builder : *String_Builder, field : *Field) { case .Struct; { print_to_builder(builder, "struct : % {", type.name); + newline_after := type.children.count / 4; + for *child : type.children { pretty_print_field(builder, child); if it_index < type.children.count - 1 { - append(builder, " "); + append(builder, ", "); + } + + if it_index % newline_after == 0 { + append(builder, "\n"); + indent(builder, 4); } } @@ -433,11 +423,11 @@ generate_output_data :: (ctx : *Compiler_Context) { variable := from_handle(ctx.type_variables, buffer_variable); cb := array_add(*ctx.cbuffers); + cb.name = variable.name; for i : 0..variable.children.count - 1 { child := variable.children[i]; - field : Property_Field; - field.base_field = type_variable_to_field(ctx.type_variables, ctx.scope_stack, from_handle(ctx.type_variables, child)); + field : Field = type_variable_to_field(ctx.type_variables, ctx.scope_stack, from_handle(ctx.type_variables, child)); array_add(*cb.fields, field); } @@ -451,20 +441,6 @@ generate_output_data :: (ctx : *Compiler_Context) { } } - find_result := find_symbol(*ctx.scope_stack, ctx.property_name, xx 1); - if find_result { - property_variable := from_handle(ctx.type_variables, find_result.type_variable); - - for i : 0..property_variable.children.count - 1 { - child := property_variable.children[i]; - field := type_variable_to_field(ctx.type_variables, ctx.scope_stack, from_handle(ctx.type_variables, child)); - prop_field : Property_Field; - prop_field.base_field = field; - array_add(*ctx.properties.fields, prop_field); - } - ctx.properties.buffer_index = property_variable.resource_index; - } - if ctx.pixel_entry_point.node { ctx.pixel_entry_point.name = ctx.pixel_entry_point.node.name; diff --git a/test/basic_property_and_return_value.ink b/test/basic_property_and_return_value.ink index 3b9be73..bdafd0d 100644 --- a/test/basic_property_and_return_value.ink +++ b/test/basic_property_and_return_value.ink @@ -1,4 +1,4 @@ -properties { +properties :: constant_buffer @properties { color : float4; } diff --git a/test/check/hinted_cbuffer.golden b/test/check/hinted_cbuffer.golden new file mode 100644 index 0000000..a8689ab --- /dev/null +++ b/test/check/hinted_cbuffer.golden @@ -0,0 +1,13 @@ +scope (global) [ + [vertex__vs_main] : (pos : float4) -> float4 + [props] : {projection : float4x4, view : float4x4} + scope (props) [ + [projection] : float4x4 + [view] : float4x4 + ] + scope (vertex__vs_main) [ + [pos] : float4 + [mv] : float4 + [mvp] : float4 + ] +] diff --git a/test/check_all.suite b/test/check_all.suite index bf66c02..74433b4 100644 --- a/test/check_all.suite +++ b/test/check_all.suite @@ -24,7 +24,6 @@ test/nested_if.ink check test/non_bool_cond.ink check test/pass_and_access_struct_fields_in_functions.ink check test/passthrough.ink check -test/property_rename.ink check test/redeclared_variable.ink check test/simple_else_if.ink check test/simple_if_else.ink check diff --git a/test/codegen/hinted_cbuffer.golden b/test/codegen/hinted_cbuffer.golden new file mode 100644 index 0000000..307c23c --- /dev/null +++ b/test/codegen/hinted_cbuffer.golden @@ -0,0 +1,13 @@ +cbuffer props : register(b0) +{ + float4x4 projection; + float4x4 view; +} + +float4 vs_main(float4 pos : POSITION) : SV_POSITION +{ + float4 mv = mul(props.view, pos); + float4 mvp = mul(props.projection, mv); + return mvp; +} + diff --git a/test/codegen_all.suite b/test/codegen_all.suite index 04e3ee9..aea0f03 100644 --- a/test/codegen_all.suite +++ b/test/codegen_all.suite @@ -14,13 +14,11 @@ test/ifdefs.ink codegen test/if_def_block.ink codegen test/if_def_expression.ink codegen test/inferred_types.ink codegen -test/meta_block.ink codegen test/multiple_functions.ink codegen test/multiple_semicolons_everywhere.ink codegen test/nested_if.ink codegen test/pass_and_access_struct_fields_in_functions.ink codegen test/passthrough.ink codegen -test/property_rename.ink codegen test/simple_else_if.ink codegen test/simple_if_else.ink codegen test/simple_if.ink codegen diff --git a/test/compile_all.suite b/test/compile_all.suite index d227386..bbbedd4 100644 --- a/test/compile_all.suite +++ b/test/compile_all.suite @@ -15,7 +15,6 @@ test/ifdefs.ink compile test/if_def_block.ink compile test/if_def_expression.ink compile test/inferred_types.ink compile -test/meta_block.ink compile test/multiple_functions.ink compile test/multiple_semicolons_everywhere.ink compile test/pass_and_access_struct_fields_in_functions.ink compile diff --git a/test/compiled/hinted_cbuffer.golden b/test/compiled/hinted_cbuffer.golden new file mode 100644 index 0000000..78d6a29 --- /dev/null +++ b/test/compiled/hinted_cbuffer.golden @@ -0,0 +1,13 @@ +[vertex entry point] - vs_main +[constant_buffer] - props - 0 (@properties) + [field] - projection : struct : float4x4 {m11 : float, + m12 : float, m13 : float, m14 : float, m21 : float, + m22 : float, m23 : float, m24 : float, m31 : float, + m32 : float, m33 : float, m34 : float, m41 : float, + m42 : float, m43 : float, m44 : float} (@projection) + [field] - view : struct : float4x4 {m11 : float, + m12 : float, m13 : float, m14 : float, m21 : float, + m22 : float, m23 : float, m24 : float, m31 : float, + m32 : float, m33 : float, m34 : float, m41 : float, + m42 : float, m43 : float, m44 : float} (@view) + \ No newline at end of file diff --git a/test/hinted_cbuffer.ink b/test/hinted_cbuffer.ink new file mode 100644 index 0000000..969bebe --- /dev/null +++ b/test/hinted_cbuffer.ink @@ -0,0 +1,10 @@ +props :: constant_buffer @properties { + projection : float4x4 @projection; + view : float4x4 @view; +} + +vertex main :: (pos : float4 @position) -> float4 @position { + mv : float4 = mul(props.view, pos); + mvp : float4 = mul(props.projection, mv); + return mvp; +} diff --git a/test/large_block.ink b/test/large_block.ink index fa29c3e..98c0520 100644 --- a/test/large_block.ink +++ b/test/large_block.ink @@ -1,4 +1,4 @@ -p :: properties { +p :: constant_buffer @properties { color : float4; rect_position : float2; rect_scale : float2; diff --git a/test/lex/basic_property_and_return_value.golden b/test/lex/basic_property_and_return_value.golden index 0b8a022..f4e5d64 100644 --- a/test/lex/basic_property_and_return_value.golden +++ b/test/lex/basic_property_and_return_value.golden @@ -1,43 +1,47 @@ -{kind = TOKEN_PROPERTIES; ; index = 0 ; length = 10 line = 1 ; column = 0 ; value ='properties'; } -{kind = TOKEN_LEFTBRACE; ; index = 11 ; length = 1 line = 1 ; column = 11 ; value ='{'; } -{kind = TOKEN_IDENTIFIER; ; index = 15 ; length = 5 line = 2 ; column = 0 ; value ='color'; } -{kind = TOKEN_COLON; ; index = 21 ; length = 1 line = 2 ; column = 6 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 23 ; length = 6 line = 2 ; column = 8 ; value ='float4'; } -{kind = TOKEN_SEMICOLON; ; index = 29 ; length = 1 line = 2 ; column = 14 ; value =';'; } -{kind = TOKEN_RIGHTBRACE; ; index = 32 ; length = 1 line = 3 ; column = 0 ; value ='}'; } -{kind = TOKEN_VERTEX; ; index = 37 ; length = 6 line = 5 ; column = 0 ; value ='vertex'; } -{kind = TOKEN_IDENTIFIER; ; index = 44 ; length = 4 line = 5 ; column = 7 ; value ='main'; } -{kind = TOKEN_DOUBLECOLON; ; index = 49 ; length = 2 line = 5 ; column = 12 ; value ='::'; } -{kind = TOKEN_LEFTPAREN; ; index = 52 ; length = 1 line = 5 ; column = 15 ; value ='('; } -{kind = TOKEN_IDENTIFIER; ; index = 53 ; length = 3 line = 5 ; column = 16 ; value ='pos'; } -{kind = TOKEN_COLON; ; index = 57 ; length = 1 line = 5 ; column = 20 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 59 ; length = 6 line = 5 ; column = 22 ; value ='float3'; } -{kind = TOKEN_AT; ; index = 66 ; length = 1 line = 5 ; column = 29 ; value ='@'; } -{kind = TOKEN_IDENTIFIER; ; index = 67 ; length = 8 line = 5 ; column = 30 ; value ='position'; } -{kind = TOKEN_RIGHTPAREN; ; index = 75 ; length = 1 line = 5 ; column = 38 ; value =')'; } -{kind = TOKEN_ARROW; ; index = 77 ; length = 2 line = 5 ; column = 40 ; value ='->'; } -{kind = TOKEN_IDENTIFIER; ; index = 80 ; length = 6 line = 5 ; column = 43 ; value ='float3'; } -{kind = TOKEN_AT; ; index = 87 ; length = 1 line = 5 ; column = 50 ; value ='@'; } -{kind = TOKEN_IDENTIFIER; ; index = 88 ; length = 8 line = 5 ; column = 51 ; value ='position'; } -{kind = TOKEN_LEFTBRACE; ; index = 97 ; length = 1 line = 5 ; column = 60 ; value ='{'; } -{kind = TOKEN_RETURN; ; index = 103 ; length = 6 line = 6 ; column = 2 ; value ='return'; } -{kind = TOKEN_IDENTIFIER; ; index = 110 ; length = 3 line = 6 ; column = 9 ; value ='pos'; } -{kind = TOKEN_SEMICOLON; ; index = 113 ; length = 1 line = 6 ; column = 12 ; value =';'; } -{kind = TOKEN_RIGHTBRACE; ; index = 116 ; length = 1 line = 7 ; column = 0 ; value ='}'; } -{kind = TOKEN_PIXEL; ; index = 121 ; length = 5 line = 9 ; column = 0 ; value ='pixel'; } -{kind = TOKEN_IDENTIFIER; ; index = 127 ; length = 4 line = 9 ; column = 6 ; value ='main'; } -{kind = TOKEN_DOUBLECOLON; ; index = 132 ; length = 2 line = 9 ; column = 11 ; value ='::'; } -{kind = TOKEN_LEFTPAREN; ; index = 135 ; length = 1 line = 9 ; column = 14 ; value ='('; } -{kind = TOKEN_RIGHTPAREN; ; index = 136 ; length = 1 line = 9 ; column = 15 ; value =')'; } -{kind = TOKEN_ARROW; ; index = 138 ; length = 2 line = 9 ; column = 17 ; value ='->'; } -{kind = TOKEN_IDENTIFIER; ; index = 141 ; length = 6 line = 9 ; column = 20 ; value ='float4'; } -{kind = TOKEN_AT; ; index = 148 ; length = 1 line = 9 ; column = 27 ; value ='@'; } -{kind = TOKEN_IDENTIFIER; ; index = 149 ; length = 7 line = 9 ; column = 28 ; value ='target0'; } -{kind = TOKEN_LEFTBRACE; ; index = 157 ; length = 1 line = 9 ; column = 36 ; value ='{'; } -{kind = TOKEN_RETURN; ; index = 163 ; length = 6 line = 10 ; column = 2 ; value ='return'; } -{kind = TOKEN_PROPERTIES; ; index = 170 ; length = 10 line = 10 ; column = 9 ; value ='properties'; } -{kind = TOKEN_DOT; ; index = 180 ; length = 1 line = 10 ; column = 19 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 181 ; length = 5 line = 10 ; column = 20 ; value ='color'; } -{kind = TOKEN_SEMICOLON; ; index = 186 ; length = 1 line = 10 ; column = 25 ; value =';'; } -{kind = TOKEN_RIGHTBRACE; ; index = 189 ; length = 1 line = 11 ; column = 0 ; value ='}'; } -{kind = TOKEN_EOF; ; index = 192 ; length = 0 line = 12 ; column = 0 ; value =''; } +{kind = TOKEN_IDENTIFIER; ; index = 0 ; length = 10 line = 1 ; column = 0 ; value ='properties'; } +{kind = TOKEN_DOUBLECOLON; ; index = 11 ; length = 2 line = 1 ; column = 11 ; value ='::'; } +{kind = TOKEN_CONSTANT_BUFFER; ; index = 14 ; length = 15 line = 1 ; column = 14 ; value ='constant_buffer'; } +{kind = TOKEN_AT; ; index = 30 ; length = 1 line = 1 ; column = 30 ; value ='@'; } +{kind = TOKEN_IDENTIFIER; ; index = 31 ; length = 10 line = 1 ; column = 31 ; value ='properties'; } +{kind = TOKEN_LEFTBRACE; ; index = 42 ; length = 1 line = 1 ; column = 42 ; value ='{'; } +{kind = TOKEN_IDENTIFIER; ; index = 46 ; length = 5 line = 2 ; column = 0 ; value ='color'; } +{kind = TOKEN_COLON; ; index = 52 ; length = 1 line = 2 ; column = 6 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 54 ; length = 6 line = 2 ; column = 8 ; value ='float4'; } +{kind = TOKEN_SEMICOLON; ; index = 60 ; length = 1 line = 2 ; column = 14 ; value =';'; } +{kind = TOKEN_RIGHTBRACE; ; index = 63 ; length = 1 line = 3 ; column = 0 ; value ='}'; } +{kind = TOKEN_VERTEX; ; index = 68 ; length = 6 line = 5 ; column = 0 ; value ='vertex'; } +{kind = TOKEN_IDENTIFIER; ; index = 75 ; length = 4 line = 5 ; column = 7 ; value ='main'; } +{kind = TOKEN_DOUBLECOLON; ; index = 80 ; length = 2 line = 5 ; column = 12 ; value ='::'; } +{kind = TOKEN_LEFTPAREN; ; index = 83 ; length = 1 line = 5 ; column = 15 ; value ='('; } +{kind = TOKEN_IDENTIFIER; ; index = 84 ; length = 3 line = 5 ; column = 16 ; value ='pos'; } +{kind = TOKEN_COLON; ; index = 88 ; length = 1 line = 5 ; column = 20 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 90 ; length = 6 line = 5 ; column = 22 ; value ='float3'; } +{kind = TOKEN_AT; ; index = 97 ; length = 1 line = 5 ; column = 29 ; value ='@'; } +{kind = TOKEN_IDENTIFIER; ; index = 98 ; length = 8 line = 5 ; column = 30 ; value ='position'; } +{kind = TOKEN_RIGHTPAREN; ; index = 106 ; length = 1 line = 5 ; column = 38 ; value =')'; } +{kind = TOKEN_ARROW; ; index = 108 ; length = 2 line = 5 ; column = 40 ; value ='->'; } +{kind = TOKEN_IDENTIFIER; ; index = 111 ; length = 6 line = 5 ; column = 43 ; value ='float3'; } +{kind = TOKEN_AT; ; index = 118 ; length = 1 line = 5 ; column = 50 ; value ='@'; } +{kind = TOKEN_IDENTIFIER; ; index = 119 ; length = 8 line = 5 ; column = 51 ; value ='position'; } +{kind = TOKEN_LEFTBRACE; ; index = 128 ; length = 1 line = 5 ; column = 60 ; value ='{'; } +{kind = TOKEN_RETURN; ; index = 134 ; length = 6 line = 6 ; column = 2 ; value ='return'; } +{kind = TOKEN_IDENTIFIER; ; index = 141 ; length = 3 line = 6 ; column = 9 ; value ='pos'; } +{kind = TOKEN_SEMICOLON; ; index = 144 ; length = 1 line = 6 ; column = 12 ; value =';'; } +{kind = TOKEN_RIGHTBRACE; ; index = 147 ; length = 1 line = 7 ; column = 0 ; value ='}'; } +{kind = TOKEN_PIXEL; ; index = 152 ; length = 5 line = 9 ; column = 0 ; value ='pixel'; } +{kind = TOKEN_IDENTIFIER; ; index = 158 ; length = 4 line = 9 ; column = 6 ; value ='main'; } +{kind = TOKEN_DOUBLECOLON; ; index = 163 ; length = 2 line = 9 ; column = 11 ; value ='::'; } +{kind = TOKEN_LEFTPAREN; ; index = 166 ; length = 1 line = 9 ; column = 14 ; value ='('; } +{kind = TOKEN_RIGHTPAREN; ; index = 167 ; length = 1 line = 9 ; column = 15 ; value =')'; } +{kind = TOKEN_ARROW; ; index = 169 ; length = 2 line = 9 ; column = 17 ; value ='->'; } +{kind = TOKEN_IDENTIFIER; ; index = 172 ; length = 6 line = 9 ; column = 20 ; value ='float4'; } +{kind = TOKEN_AT; ; index = 179 ; length = 1 line = 9 ; column = 27 ; value ='@'; } +{kind = TOKEN_IDENTIFIER; ; index = 180 ; length = 7 line = 9 ; column = 28 ; value ='target0'; } +{kind = TOKEN_LEFTBRACE; ; index = 188 ; length = 1 line = 9 ; column = 36 ; value ='{'; } +{kind = TOKEN_RETURN; ; index = 194 ; length = 6 line = 10 ; column = 2 ; value ='return'; } +{kind = TOKEN_IDENTIFIER; ; index = 201 ; length = 10 line = 10 ; column = 9 ; value ='properties'; } +{kind = TOKEN_DOT; ; index = 211 ; length = 1 line = 10 ; column = 19 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 212 ; length = 5 line = 10 ; column = 20 ; value ='color'; } +{kind = TOKEN_SEMICOLON; ; index = 217 ; length = 1 line = 10 ; column = 25 ; value =';'; } +{kind = TOKEN_RIGHTBRACE; ; index = 220 ; length = 1 line = 11 ; column = 0 ; value ='}'; } +{kind = TOKEN_EOF; ; index = 223 ; length = 0 line = 12 ; column = 0 ; value =''; } diff --git a/test/lex/hinted_cbuffer.golden b/test/lex/hinted_cbuffer.golden new file mode 100644 index 0000000..556953a --- /dev/null +++ b/test/lex/hinted_cbuffer.golden @@ -0,0 +1,65 @@ +{kind = TOKEN_IDENTIFIER; ; index = 0 ; length = 5 line = 1 ; column = 0 ; value ='props'; } +{kind = TOKEN_DOUBLECOLON; ; index = 6 ; length = 2 line = 1 ; column = 6 ; value ='::'; } +{kind = TOKEN_CONSTANT_BUFFER; ; index = 9 ; length = 15 line = 1 ; column = 9 ; value ='constant_buffer'; } +{kind = TOKEN_AT; ; index = 25 ; length = 1 line = 1 ; column = 25 ; value ='@'; } +{kind = TOKEN_PROPERTIES; ; index = 26 ; length = 10 line = 1 ; column = 26 ; value ='properties'; } +{kind = TOKEN_LEFTBRACE; ; index = 37 ; length = 1 line = 1 ; column = 37 ; value ='{'; } +{kind = TOKEN_IDENTIFIER; ; index = 41 ; length = 10 line = 2 ; column = 0 ; value ='projection'; } +{kind = TOKEN_COLON; ; index = 52 ; length = 1 line = 2 ; column = 11 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 54 ; length = 8 line = 2 ; column = 13 ; value ='float4x4'; } +{kind = TOKEN_AT; ; index = 63 ; length = 1 line = 2 ; column = 22 ; value ='@'; } +{kind = TOKEN_IDENTIFIER; ; index = 64 ; length = 10 line = 2 ; column = 23 ; value ='projection'; } +{kind = TOKEN_SEMICOLON; ; index = 74 ; length = 1 line = 2 ; column = 33 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 78 ; length = 4 line = 3 ; column = 0 ; value ='view'; } +{kind = TOKEN_COLON; ; index = 89 ; length = 1 line = 3 ; column = 11 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 91 ; length = 8 line = 3 ; column = 13 ; value ='float4x4'; } +{kind = TOKEN_AT; ; index = 100 ; length = 1 line = 3 ; column = 22 ; value ='@'; } +{kind = TOKEN_IDENTIFIER; ; index = 101 ; length = 4 line = 3 ; column = 23 ; value ='view'; } +{kind = TOKEN_SEMICOLON; ; index = 105 ; length = 1 line = 3 ; column = 27 ; value =';'; } +{kind = TOKEN_RIGHTBRACE; ; index = 108 ; length = 1 line = 4 ; column = 0 ; value ='}'; } +{kind = TOKEN_VERTEX; ; index = 113 ; length = 6 line = 6 ; column = 0 ; value ='vertex'; } +{kind = TOKEN_IDENTIFIER; ; index = 120 ; length = 4 line = 6 ; column = 7 ; value ='main'; } +{kind = TOKEN_DOUBLECOLON; ; index = 125 ; length = 2 line = 6 ; column = 12 ; value ='::'; } +{kind = TOKEN_LEFTPAREN; ; index = 128 ; length = 1 line = 6 ; column = 15 ; value ='('; } +{kind = TOKEN_IDENTIFIER; ; index = 129 ; length = 3 line = 6 ; column = 16 ; value ='pos'; } +{kind = TOKEN_COLON; ; index = 133 ; length = 1 line = 6 ; column = 20 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 135 ; length = 6 line = 6 ; column = 22 ; value ='float4'; } +{kind = TOKEN_AT; ; index = 142 ; length = 1 line = 6 ; column = 29 ; value ='@'; } +{kind = TOKEN_IDENTIFIER; ; index = 143 ; length = 8 line = 6 ; column = 30 ; value ='position'; } +{kind = TOKEN_RIGHTPAREN; ; index = 151 ; length = 1 line = 6 ; column = 38 ; value =')'; } +{kind = TOKEN_ARROW; ; index = 153 ; length = 2 line = 6 ; column = 40 ; value ='->'; } +{kind = TOKEN_IDENTIFIER; ; index = 156 ; length = 6 line = 6 ; column = 43 ; value ='float4'; } +{kind = TOKEN_AT; ; index = 163 ; length = 1 line = 6 ; column = 50 ; value ='@'; } +{kind = TOKEN_IDENTIFIER; ; index = 164 ; length = 8 line = 6 ; column = 51 ; value ='position'; } +{kind = TOKEN_LEFTBRACE; ; index = 173 ; length = 1 line = 6 ; column = 60 ; value ='{'; } +{kind = TOKEN_IDENTIFIER; ; index = 177 ; length = 2 line = 7 ; column = 0 ; value ='mv'; } +{kind = TOKEN_COLON; ; index = 180 ; length = 1 line = 7 ; column = 3 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 182 ; length = 6 line = 7 ; column = 5 ; value ='float4'; } +{kind = TOKEN_ASSIGN; ; index = 189 ; length = 1 line = 7 ; column = 12 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 191 ; length = 3 line = 7 ; column = 14 ; value ='mul'; } +{kind = TOKEN_LEFTPAREN; ; index = 194 ; length = 1 line = 7 ; column = 17 ; value ='('; } +{kind = TOKEN_IDENTIFIER; ; index = 195 ; length = 5 line = 7 ; column = 18 ; value ='props'; } +{kind = TOKEN_DOT; ; index = 200 ; length = 1 line = 7 ; column = 23 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 201 ; length = 4 line = 7 ; column = 24 ; value ='view'; } +{kind = TOKEN_COMMA; ; index = 205 ; length = 1 line = 7 ; column = 28 ; value =','; } +{kind = TOKEN_IDENTIFIER; ; index = 207 ; length = 3 line = 7 ; column = 30 ; value ='pos'; } +{kind = TOKEN_RIGHTPAREN; ; index = 210 ; length = 1 line = 7 ; column = 33 ; value =')'; } +{kind = TOKEN_SEMICOLON; ; index = 211 ; length = 1 line = 7 ; column = 34 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 215 ; length = 3 line = 8 ; column = 0 ; value ='mvp'; } +{kind = TOKEN_COLON; ; index = 219 ; length = 1 line = 8 ; column = 4 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 221 ; length = 6 line = 8 ; column = 6 ; value ='float4'; } +{kind = TOKEN_ASSIGN; ; index = 228 ; length = 1 line = 8 ; column = 13 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 230 ; length = 3 line = 8 ; column = 15 ; value ='mul'; } +{kind = TOKEN_LEFTPAREN; ; index = 233 ; length = 1 line = 8 ; column = 18 ; value ='('; } +{kind = TOKEN_IDENTIFIER; ; index = 234 ; length = 5 line = 8 ; column = 19 ; value ='props'; } +{kind = TOKEN_DOT; ; index = 239 ; length = 1 line = 8 ; column = 24 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 240 ; length = 10 line = 8 ; column = 25 ; value ='projection'; } +{kind = TOKEN_COMMA; ; index = 250 ; length = 1 line = 8 ; column = 35 ; value =','; } +{kind = TOKEN_IDENTIFIER; ; index = 252 ; length = 2 line = 8 ; column = 37 ; value ='mv'; } +{kind = TOKEN_RIGHTPAREN; ; index = 254 ; length = 1 line = 8 ; column = 39 ; value =')'; } +{kind = TOKEN_SEMICOLON; ; index = 255 ; length = 1 line = 8 ; column = 40 ; value =';'; } +{kind = TOKEN_RETURN; ; index = 259 ; length = 6 line = 9 ; column = 0 ; value ='return'; } +{kind = TOKEN_IDENTIFIER; ; index = 266 ; length = 3 line = 9 ; column = 7 ; value ='mvp'; } +{kind = TOKEN_SEMICOLON; ; index = 269 ; length = 1 line = 9 ; column = 10 ; value =';'; } +{kind = TOKEN_RIGHTBRACE; ; index = 272 ; length = 1 line = 10 ; column = 0 ; value ='}'; } +{kind = TOKEN_EOF; ; index = 275 ; length = 0 line = 11 ; column = 0 ; value =''; } diff --git a/test/lex/large_block.golden b/test/lex/large_block.golden index 29eca20..a9bfc7f 100644 --- a/test/lex/large_block.golden +++ b/test/lex/large_block.golden @@ -1,289 +1,291 @@ {kind = TOKEN_IDENTIFIER; ; index = 0 ; length = 1 line = 1 ; column = 0 ; value ='p'; } {kind = TOKEN_DOUBLECOLON; ; index = 2 ; length = 2 line = 1 ; column = 2 ; value ='::'; } -{kind = TOKEN_PROPERTIES; ; index = 5 ; length = 10 line = 1 ; column = 5 ; value ='properties'; } -{kind = TOKEN_LEFTBRACE; ; index = 16 ; length = 1 line = 1 ; column = 16 ; value ='{'; } -{kind = TOKEN_IDENTIFIER; ; index = 20 ; length = 5 line = 2 ; column = 0 ; value ='color'; } -{kind = TOKEN_COLON; ; index = 34 ; length = 1 line = 2 ; column = 14 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 36 ; length = 6 line = 2 ; column = 16 ; value ='float4'; } -{kind = TOKEN_SEMICOLON; ; index = 42 ; length = 1 line = 2 ; column = 22 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 46 ; length = 13 line = 3 ; column = 0 ; value ='rect_position'; } -{kind = TOKEN_COLON; ; index = 60 ; length = 1 line = 3 ; column = 14 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 62 ; length = 6 line = 3 ; column = 16 ; value ='float2'; } -{kind = TOKEN_SEMICOLON; ; index = 68 ; length = 1 line = 3 ; column = 22 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 72 ; length = 10 line = 4 ; column = 0 ; value ='rect_scale'; } -{kind = TOKEN_COLON; ; index = 86 ; length = 1 line = 4 ; column = 14 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 88 ; length = 6 line = 4 ; column = 16 ; value ='float2'; } -{kind = TOKEN_SEMICOLON; ; index = 94 ; length = 1 line = 4 ; column = 22 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 98 ; length = 10 line = 5 ; column = 0 ; value ='resolution'; } -{kind = TOKEN_COLON; ; index = 112 ; length = 1 line = 5 ; column = 14 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 114 ; length = 6 line = 5 ; column = 16 ; value ='float2'; } -{kind = TOKEN_SEMICOLON; ; index = 120 ; length = 1 line = 5 ; column = 22 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 124 ; length = 7 line = 6 ; column = 0 ; value ='texture'; } -{kind = TOKEN_COLON; ; index = 138 ; length = 1 line = 6 ; column = 14 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 140 ; length = 9 line = 6 ; column = 16 ; value ='Texture2D'; } -{kind = TOKEN_SEMICOLON; ; index = 149 ; length = 1 line = 6 ; column = 25 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 153 ; length = 7 line = 7 ; column = 0 ; value ='sampler'; } -{kind = TOKEN_COLON; ; index = 167 ; length = 1 line = 7 ; column = 14 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 169 ; length = 7 line = 7 ; column = 16 ; value ='Sampler'; } -{kind = TOKEN_SEMICOLON; ; index = 176 ; length = 1 line = 7 ; column = 23 ; value =';'; } -{kind = TOKEN_RIGHTBRACE; ; index = 179 ; length = 1 line = 8 ; column = 0 ; value ='}'; } -{kind = TOKEN_IDENTIFIER; ; index = 184 ; length = 8 line = 10 ; column = 0 ; value ='PS_Input'; } -{kind = TOKEN_DOUBLECOLON; ; index = 193 ; length = 2 line = 10 ; column = 9 ; value ='::'; } -{kind = TOKEN_STRUCT; ; index = 196 ; length = 6 line = 10 ; column = 12 ; value ='struct'; } -{kind = TOKEN_LEFTBRACE; ; index = 203 ; length = 1 line = 10 ; column = 19 ; value ='{'; } -{kind = TOKEN_IDENTIFIER; ; index = 207 ; length = 2 line = 11 ; column = 0 ; value ='uv'; } -{kind = TOKEN_COLON; ; index = 210 ; length = 1 line = 11 ; column = 3 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 212 ; length = 6 line = 11 ; column = 5 ; value ='float2'; } -{kind = TOKEN_AT; ; index = 219 ; length = 1 line = 11 ; column = 12 ; value ='@'; } -{kind = TOKEN_IDENTIFIER; ; index = 220 ; length = 2 line = 11 ; column = 13 ; value ='uv'; } -{kind = TOKEN_SEMICOLON; ; index = 222 ; length = 1 line = 11 ; column = 15 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 226 ; length = 3 line = 12 ; column = 0 ; value ='pos'; } -{kind = TOKEN_COLON; ; index = 230 ; length = 1 line = 12 ; column = 4 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 232 ; length = 6 line = 12 ; column = 6 ; value ='float4'; } -{kind = TOKEN_AT; ; index = 239 ; length = 1 line = 12 ; column = 13 ; value ='@'; } -{kind = TOKEN_IDENTIFIER; ; index = 240 ; length = 3 line = 12 ; column = 14 ; value ='pos'; } -{kind = TOKEN_SEMICOLON; ; index = 243 ; length = 1 line = 12 ; column = 17 ; value =';'; } -{kind = TOKEN_RIGHTBRACE; ; index = 246 ; length = 1 line = 13 ; column = 0 ; value ='}'; } -{kind = TOKEN_VERTEX; ; index = 251 ; length = 6 line = 15 ; column = 0 ; value ='vertex'; } -{kind = TOKEN_IDENTIFIER; ; index = 258 ; length = 4 line = 15 ; column = 7 ; value ='main'; } -{kind = TOKEN_DOUBLECOLON; ; index = 263 ; length = 2 line = 15 ; column = 12 ; value ='::'; } -{kind = TOKEN_LEFTPAREN; ; index = 266 ; length = 1 line = 15 ; column = 15 ; value ='('; } -{kind = TOKEN_IDENTIFIER; ; index = 267 ; length = 3 line = 15 ; column = 16 ; value ='pos'; } -{kind = TOKEN_COLON; ; index = 271 ; length = 1 line = 15 ; column = 20 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 273 ; length = 6 line = 15 ; column = 22 ; value ='float4'; } -{kind = TOKEN_AT; ; index = 280 ; length = 1 line = 15 ; column = 29 ; value ='@'; } -{kind = TOKEN_IDENTIFIER; ; index = 281 ; length = 8 line = 15 ; column = 30 ; value ='position'; } -{kind = TOKEN_RIGHTPAREN; ; index = 289 ; length = 1 line = 15 ; column = 38 ; value =')'; } -{kind = TOKEN_ARROW; ; index = 291 ; length = 2 line = 15 ; column = 40 ; value ='->'; } -{kind = TOKEN_IDENTIFIER; ; index = 294 ; length = 8 line = 15 ; column = 43 ; value ='PS_Input'; } -{kind = TOKEN_LEFTBRACE; ; index = 303 ; length = 1 line = 15 ; column = 52 ; value ='{'; } -{kind = TOKEN_IDENTIFIER; ; index = 307 ; length = 3 line = 16 ; column = 0 ; value ='res'; } -{kind = TOKEN_COLON; ; index = 316 ; length = 1 line = 16 ; column = 9 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 318 ; length = 6 line = 16 ; column = 11 ; value ='float2'; } -{kind = TOKEN_ASSIGN; ; index = 325 ; length = 1 line = 16 ; column = 18 ; value ='='; } -{kind = TOKEN_IDENTIFIER; ; index = 327 ; length = 1 line = 16 ; column = 20 ; value ='p'; } -{kind = TOKEN_DOT; ; index = 328 ; length = 1 line = 16 ; column = 21 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 329 ; length = 10 line = 16 ; column = 22 ; value ='resolution'; } -{kind = TOKEN_SEMICOLON; ; index = 339 ; length = 1 line = 16 ; column = 32 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 343 ; length = 5 line = 17 ; column = 0 ; value ='scale'; } -{kind = TOKEN_COLON; ; index = 352 ; length = 1 line = 17 ; column = 9 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 354 ; length = 6 line = 17 ; column = 11 ; value ='float2'; } -{kind = TOKEN_ASSIGN; ; index = 361 ; length = 1 line = 17 ; column = 18 ; value ='='; } -{kind = TOKEN_IDENTIFIER; ; index = 363 ; length = 1 line = 17 ; column = 20 ; value ='p'; } -{kind = TOKEN_DOT; ; index = 364 ; length = 1 line = 17 ; column = 21 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 365 ; length = 10 line = 17 ; column = 22 ; value ='rect_scale'; } -{kind = TOKEN_SEMICOLON; ; index = 375 ; length = 1 line = 17 ; column = 32 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 379 ; length = 8 line = 18 ; column = 0 ; value ='rect_pos'; } -{kind = TOKEN_COLON; ; index = 388 ; length = 1 line = 18 ; column = 9 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 390 ; length = 6 line = 18 ; column = 11 ; value ='float2'; } -{kind = TOKEN_ASSIGN; ; index = 397 ; length = 1 line = 18 ; column = 18 ; value ='='; } -{kind = TOKEN_IDENTIFIER; ; index = 399 ; length = 1 line = 18 ; column = 20 ; value ='p'; } -{kind = TOKEN_DOT; ; index = 400 ; length = 1 line = 18 ; column = 21 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 401 ; length = 13 line = 18 ; column = 22 ; value ='rect_position'; } -{kind = TOKEN_SEMICOLON; ; index = 414 ; length = 1 line = 18 ; column = 35 ; value =';'; } -{kind = TOKEN_SEMICOLON; ; index = 415 ; length = 1 line = 18 ; column = 36 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 421 ; length = 6 line = 20 ; column = 0 ; value ='center'; } -{kind = TOKEN_COLON; ; index = 428 ; length = 1 line = 20 ; column = 7 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 430 ; length = 6 line = 20 ; column = 9 ; value ='float2'; } -{kind = TOKEN_ASSIGN; ; index = 437 ; length = 1 line = 20 ; column = 16 ; value ='='; } -{kind = TOKEN_IDENTIFIER; ; index = 439 ; length = 8 line = 20 ; column = 18 ; value ='rect_pos'; } -{kind = TOKEN_SEMICOLON; ; index = 447 ; length = 1 line = 20 ; column = 26 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 451 ; length = 9 line = 21 ; column = 0 ; value ='half_size'; } -{kind = TOKEN_COLON; ; index = 462 ; length = 1 line = 21 ; column = 11 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 464 ; length = 6 line = 21 ; column = 13 ; value ='float2'; } -{kind = TOKEN_ASSIGN; ; index = 471 ; length = 1 line = 21 ; column = 20 ; value ='='; } -{kind = TOKEN_IDENTIFIER; ; index = 473 ; length = 6 line = 21 ; column = 22 ; value ='float2'; } -{kind = TOKEN_LEFTPAREN; ; index = 479 ; length = 1 line = 21 ; column = 28 ; value ='('; } -{kind = TOKEN_IDENTIFIER; ; index = 480 ; length = 5 line = 21 ; column = 29 ; value ='scale'; } -{kind = TOKEN_DOT; ; index = 485 ; length = 1 line = 21 ; column = 34 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 486 ; length = 1 line = 21 ; column = 35 ; value ='x'; } -{kind = TOKEN_SLASH; ; index = 488 ; length = 1 line = 21 ; column = 37 ; value ='/'; } -{kind = TOKEN_INTLITERAL; ; index = 490 ; length = 1 line = 21 ; column = 39 ; value ='2'; } -{kind = TOKEN_COMMA; ; index = 491 ; length = 1 line = 21 ; column = 40 ; value =','; } -{kind = TOKEN_IDENTIFIER; ; index = 493 ; length = 5 line = 21 ; column = 42 ; value ='scale'; } -{kind = TOKEN_DOT; ; index = 498 ; length = 1 line = 21 ; column = 47 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 499 ; length = 1 line = 21 ; column = 48 ; value ='y'; } -{kind = TOKEN_SLASH; ; index = 501 ; length = 1 line = 21 ; column = 50 ; value ='/'; } -{kind = TOKEN_INTLITERAL; ; index = 503 ; length = 1 line = 21 ; column = 52 ; value ='2'; } -{kind = TOKEN_RIGHTPAREN; ; index = 504 ; length = 1 line = 21 ; column = 53 ; value =')'; } -{kind = TOKEN_SEMICOLON; ; index = 505 ; length = 1 line = 21 ; column = 54 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 509 ; length = 7 line = 22 ; column = 0 ; value ='dst_pos'; } -{kind = TOKEN_COLON; ; index = 520 ; length = 1 line = 22 ; column = 11 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 522 ; length = 6 line = 22 ; column = 13 ; value ='float4'; } -{kind = TOKEN_ASSIGN; ; index = 529 ; length = 1 line = 22 ; column = 20 ; value ='='; } -{kind = TOKEN_IDENTIFIER; ; index = 531 ; length = 6 line = 22 ; column = 22 ; value ='float4'; } -{kind = TOKEN_LEFTPAREN; ; index = 537 ; length = 1 line = 22 ; column = 28 ; value ='('; } -{kind = TOKEN_IDENTIFIER; ; index = 538 ; length = 3 line = 22 ; column = 29 ; value ='pos'; } -{kind = TOKEN_DOT; ; index = 541 ; length = 1 line = 22 ; column = 32 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 542 ; length = 1 line = 22 ; column = 33 ; value ='x'; } -{kind = TOKEN_STAR; ; index = 544 ; length = 1 line = 22 ; column = 35 ; value ='*'; } -{kind = TOKEN_IDENTIFIER; ; index = 546 ; length = 9 line = 22 ; column = 37 ; value ='half_size'; } -{kind = TOKEN_DOT; ; index = 555 ; length = 1 line = 22 ; column = 46 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 556 ; length = 1 line = 22 ; column = 47 ; value ='x'; } -{kind = TOKEN_PLUS; ; index = 558 ; length = 1 line = 22 ; column = 49 ; value ='+'; } -{kind = TOKEN_IDENTIFIER; ; index = 560 ; length = 6 line = 22 ; column = 51 ; value ='center'; } -{kind = TOKEN_DOT; ; index = 566 ; length = 1 line = 22 ; column = 57 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 567 ; length = 1 line = 22 ; column = 58 ; value ='x'; } -{kind = TOKEN_COMMA; ; index = 568 ; length = 1 line = 22 ; column = 59 ; value =','; } -{kind = TOKEN_IDENTIFIER; ; index = 570 ; length = 3 line = 22 ; column = 61 ; value ='pos'; } -{kind = TOKEN_DOT; ; index = 573 ; length = 1 line = 22 ; column = 64 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 574 ; length = 1 line = 22 ; column = 65 ; value ='y'; } -{kind = TOKEN_STAR; ; index = 576 ; length = 1 line = 22 ; column = 67 ; value ='*'; } -{kind = TOKEN_IDENTIFIER; ; index = 578 ; length = 9 line = 22 ; column = 69 ; value ='half_size'; } -{kind = TOKEN_DOT; ; index = 587 ; length = 1 line = 22 ; column = 78 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 588 ; length = 1 line = 22 ; column = 79 ; value ='y'; } -{kind = TOKEN_PLUS; ; index = 590 ; length = 1 line = 22 ; column = 81 ; value ='+'; } -{kind = TOKEN_IDENTIFIER; ; index = 592 ; length = 6 line = 22 ; column = 83 ; value ='center'; } -{kind = TOKEN_DOT; ; index = 598 ; length = 1 line = 22 ; column = 89 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 599 ; length = 1 line = 22 ; column = 90 ; value ='y'; } -{kind = TOKEN_COMMA; ; index = 600 ; length = 1 line = 22 ; column = 91 ; value =','; } -{kind = TOKEN_FLOATLITERAL; ; index = 602 ; length = 3 line = 22 ; column = 93 ; value ='0'; } -{kind = TOKEN_COMMA; ; index = 605 ; length = 1 line = 22 ; column = 96 ; value =','; } -{kind = TOKEN_FLOATLITERAL; ; index = 607 ; length = 3 line = 22 ; column = 98 ; value ='1'; } -{kind = TOKEN_RIGHTPAREN; ; index = 610 ; length = 1 line = 22 ; column = 101 ; value =')'; } -{kind = TOKEN_SEMICOLON; ; index = 611 ; length = 1 line = 22 ; column = 102 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 617 ; length = 6 line = 24 ; column = 0 ; value ='result'; } -{kind = TOKEN_COLON; ; index = 624 ; length = 1 line = 24 ; column = 7 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 626 ; length = 8 line = 24 ; column = 9 ; value ='PS_Input'; } -{kind = TOKEN_SEMICOLON; ; index = 634 ; length = 1 line = 24 ; column = 17 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 640 ; length = 6 line = 26 ; column = 0 ; value ='src_p0'; } -{kind = TOKEN_COLON; ; index = 647 ; length = 1 line = 26 ; column = 7 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 649 ; length = 6 line = 26 ; column = 9 ; value ='float2'; } -{kind = TOKEN_ASSIGN; ; index = 656 ; length = 1 line = 26 ; column = 16 ; value ='='; } -{kind = TOKEN_IDENTIFIER; ; index = 658 ; length = 6 line = 26 ; column = 18 ; value ='float2'; } -{kind = TOKEN_LEFTPAREN; ; index = 664 ; length = 1 line = 26 ; column = 24 ; value ='('; } -{kind = TOKEN_FLOATLITERAL; ; index = 665 ; length = 3 line = 26 ; column = 25 ; value ='0'; } -{kind = TOKEN_COMMA; ; index = 668 ; length = 1 line = 26 ; column = 28 ; value =','; } -{kind = TOKEN_FLOATLITERAL; ; index = 670 ; length = 3 line = 26 ; column = 30 ; value ='1'; } -{kind = TOKEN_RIGHTPAREN; ; index = 673 ; length = 1 line = 26 ; column = 33 ; value =')'; } -{kind = TOKEN_SEMICOLON; ; index = 674 ; length = 1 line = 26 ; column = 34 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 678 ; length = 6 line = 27 ; column = 0 ; value ='src_p1'; } -{kind = TOKEN_COLON; ; index = 685 ; length = 1 line = 27 ; column = 7 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 687 ; length = 6 line = 27 ; column = 9 ; value ='float2'; } -{kind = TOKEN_ASSIGN; ; index = 694 ; length = 1 line = 27 ; column = 16 ; value ='='; } -{kind = TOKEN_IDENTIFIER; ; index = 696 ; length = 6 line = 27 ; column = 18 ; value ='float2'; } -{kind = TOKEN_LEFTPAREN; ; index = 702 ; length = 1 line = 27 ; column = 24 ; value ='('; } -{kind = TOKEN_FLOATLITERAL; ; index = 703 ; length = 3 line = 27 ; column = 25 ; value ='1'; } -{kind = TOKEN_COMMA; ; index = 706 ; length = 1 line = 27 ; column = 28 ; value =','; } -{kind = TOKEN_FLOATLITERAL; ; index = 708 ; length = 3 line = 27 ; column = 30 ; value ='0'; } -{kind = TOKEN_RIGHTPAREN; ; index = 711 ; length = 1 line = 27 ; column = 33 ; value =')'; } -{kind = TOKEN_SEMICOLON; ; index = 712 ; length = 1 line = 27 ; column = 34 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 718 ; length = 13 line = 29 ; column = 0 ; value ='src_half_size'; } -{kind = TOKEN_COLON; ; index = 732 ; length = 1 line = 29 ; column = 14 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 734 ; length = 6 line = 29 ; column = 16 ; value ='float2'; } -{kind = TOKEN_ASSIGN; ; index = 741 ; length = 1 line = 29 ; column = 23 ; value ='='; } -{kind = TOKEN_LEFTPAREN; ; index = 743 ; length = 1 line = 29 ; column = 25 ; value ='('; } -{kind = TOKEN_IDENTIFIER; ; index = 744 ; length = 6 line = 29 ; column = 26 ; value ='src_p1'; } -{kind = TOKEN_MINUS; ; index = 751 ; length = 1 line = 29 ; column = 33 ; value ='-'; } -{kind = TOKEN_IDENTIFIER; ; index = 753 ; length = 6 line = 29 ; column = 35 ; value ='src_p0'; } -{kind = TOKEN_RIGHTPAREN; ; index = 759 ; length = 1 line = 29 ; column = 41 ; value =')'; } -{kind = TOKEN_SLASH; ; index = 761 ; length = 1 line = 29 ; column = 43 ; value ='/'; } -{kind = TOKEN_INTLITERAL; ; index = 763 ; length = 1 line = 29 ; column = 45 ; value ='2'; } -{kind = TOKEN_SEMICOLON; ; index = 764 ; length = 1 line = 29 ; column = 46 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 768 ; length = 10 line = 30 ; column = 0 ; value ='src_center'; } -{kind = TOKEN_COLON; ; index = 782 ; length = 1 line = 30 ; column = 14 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 784 ; length = 6 line = 30 ; column = 16 ; value ='float2'; } -{kind = TOKEN_ASSIGN; ; index = 791 ; length = 1 line = 30 ; column = 23 ; value ='='; } -{kind = TOKEN_LEFTPAREN; ; index = 793 ; length = 1 line = 30 ; column = 25 ; value ='('; } -{kind = TOKEN_IDENTIFIER; ; index = 794 ; length = 6 line = 30 ; column = 26 ; value ='src_p1'; } -{kind = TOKEN_PLUS; ; index = 801 ; length = 1 line = 30 ; column = 33 ; value ='+'; } -{kind = TOKEN_IDENTIFIER; ; index = 803 ; length = 6 line = 30 ; column = 35 ; value ='src_p0'; } -{kind = TOKEN_RIGHTPAREN; ; index = 809 ; length = 1 line = 30 ; column = 41 ; value =')'; } -{kind = TOKEN_SLASH; ; index = 811 ; length = 1 line = 30 ; column = 43 ; value ='/'; } -{kind = TOKEN_INTLITERAL; ; index = 813 ; length = 1 line = 30 ; column = 45 ; value ='2'; } -{kind = TOKEN_SEMICOLON; ; index = 814 ; length = 1 line = 30 ; column = 46 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 818 ; length = 7 line = 31 ; column = 0 ; value ='src_pos'; } -{kind = TOKEN_COLON; ; index = 832 ; length = 1 line = 31 ; column = 14 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 834 ; length = 6 line = 31 ; column = 16 ; value ='float2'; } -{kind = TOKEN_ASSIGN; ; index = 841 ; length = 1 line = 31 ; column = 23 ; value ='='; } -{kind = TOKEN_IDENTIFIER; ; index = 843 ; length = 6 line = 31 ; column = 25 ; value ='float2'; } -{kind = TOKEN_LEFTPAREN; ; index = 849 ; length = 1 line = 31 ; column = 31 ; value ='('; } -{kind = TOKEN_IDENTIFIER; ; index = 850 ; length = 3 line = 31 ; column = 32 ; value ='pos'; } -{kind = TOKEN_DOT; ; index = 853 ; length = 1 line = 31 ; column = 35 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 854 ; length = 1 line = 31 ; column = 36 ; value ='x'; } -{kind = TOKEN_COMMA; ; index = 855 ; length = 1 line = 31 ; column = 37 ; value =','; } -{kind = TOKEN_IDENTIFIER; ; index = 857 ; length = 3 line = 31 ; column = 39 ; value ='pos'; } -{kind = TOKEN_DOT; ; index = 860 ; length = 1 line = 31 ; column = 42 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 861 ; length = 1 line = 31 ; column = 43 ; value ='y'; } -{kind = TOKEN_RIGHTPAREN; ; index = 862 ; length = 1 line = 31 ; column = 44 ; value =')'; } -{kind = TOKEN_STAR; ; index = 864 ; length = 1 line = 31 ; column = 46 ; value ='*'; } -{kind = TOKEN_IDENTIFIER; ; index = 866 ; length = 13 line = 31 ; column = 48 ; value ='src_half_size'; } -{kind = TOKEN_PLUS; ; index = 880 ; length = 1 line = 31 ; column = 62 ; value ='+'; } -{kind = TOKEN_IDENTIFIER; ; index = 882 ; length = 10 line = 31 ; column = 64 ; value ='src_center'; } -{kind = TOKEN_SEMICOLON; ; index = 892 ; length = 1 line = 31 ; column = 74 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 898 ; length = 6 line = 33 ; column = 0 ; value ='result'; } -{kind = TOKEN_DOT; ; index = 904 ; length = 1 line = 33 ; column = 6 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 905 ; length = 2 line = 33 ; column = 7 ; value ='uv'; } -{kind = TOKEN_ASSIGN; ; index = 908 ; length = 1 line = 33 ; column = 10 ; value ='='; } -{kind = TOKEN_IDENTIFIER; ; index = 910 ; length = 6 line = 33 ; column = 12 ; value ='float2'; } -{kind = TOKEN_LEFTPAREN; ; index = 916 ; length = 1 line = 33 ; column = 18 ; value ='('; } -{kind = TOKEN_INTLITERAL; ; index = 917 ; length = 1 line = 33 ; column = 19 ; value ='1'; } -{kind = TOKEN_COMMA; ; index = 918 ; length = 1 line = 33 ; column = 20 ; value =','; } -{kind = TOKEN_INTLITERAL; ; index = 920 ; length = 1 line = 33 ; column = 22 ; value ='1'; } -{kind = TOKEN_RIGHTPAREN; ; index = 921 ; length = 1 line = 33 ; column = 23 ; value =')'; } -{kind = TOKEN_SEMICOLON; ; index = 922 ; length = 1 line = 33 ; column = 24 ; value =';'; } -{kind = TOKEN_IDENTIFIER; ; index = 926 ; length = 6 line = 34 ; column = 0 ; value ='result'; } -{kind = TOKEN_DOT; ; index = 932 ; length = 1 line = 34 ; column = 6 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 933 ; length = 3 line = 34 ; column = 7 ; value ='pos'; } -{kind = TOKEN_ASSIGN; ; index = 937 ; length = 1 line = 34 ; column = 11 ; value ='='; } -{kind = TOKEN_IDENTIFIER; ; index = 939 ; length = 6 line = 34 ; column = 13 ; value ='float4'; } -{kind = TOKEN_LEFTPAREN; ; index = 945 ; length = 1 line = 34 ; column = 19 ; value ='('; } -{kind = TOKEN_FLOATLITERAL; ; index = 946 ; length = 3 line = 34 ; column = 20 ; value ='2'; } -{kind = TOKEN_STAR; ; index = 950 ; length = 1 line = 34 ; column = 24 ; value ='*'; } -{kind = TOKEN_IDENTIFIER; ; index = 952 ; length = 7 line = 34 ; column = 26 ; value ='dst_pos'; } -{kind = TOKEN_DOT; ; index = 959 ; length = 1 line = 34 ; column = 33 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 960 ; length = 1 line = 34 ; column = 34 ; value ='x'; } -{kind = TOKEN_SLASH; ; index = 962 ; length = 1 line = 34 ; column = 36 ; value ='/'; } -{kind = TOKEN_IDENTIFIER; ; index = 964 ; length = 3 line = 34 ; column = 38 ; value ='res'; } -{kind = TOKEN_DOT; ; index = 967 ; length = 1 line = 34 ; column = 41 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 968 ; length = 1 line = 34 ; column = 42 ; value ='x'; } -{kind = TOKEN_MINUS; ; index = 970 ; length = 1 line = 34 ; column = 44 ; value ='-'; } -{kind = TOKEN_INTLITERAL; ; index = 972 ; length = 1 line = 34 ; column = 46 ; value ='1'; } -{kind = TOKEN_COMMA; ; index = 973 ; length = 1 line = 34 ; column = 47 ; value =','; } -{kind = TOKEN_FLOATLITERAL; ; index = 975 ; length = 3 line = 34 ; column = 49 ; value ='2'; } -{kind = TOKEN_STAR; ; index = 979 ; length = 1 line = 34 ; column = 53 ; value ='*'; } -{kind = TOKEN_IDENTIFIER; ; index = 981 ; length = 7 line = 34 ; column = 55 ; value ='dst_pos'; } -{kind = TOKEN_DOT; ; index = 988 ; length = 1 line = 34 ; column = 62 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 989 ; length = 1 line = 34 ; column = 63 ; value ='y'; } -{kind = TOKEN_SLASH; ; index = 991 ; length = 1 line = 34 ; column = 65 ; value ='/'; } -{kind = TOKEN_IDENTIFIER; ; index = 993 ; length = 3 line = 34 ; column = 67 ; value ='res'; } -{kind = TOKEN_DOT; ; index = 996 ; length = 1 line = 34 ; column = 70 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 997 ; length = 1 line = 34 ; column = 71 ; value ='y'; } -{kind = TOKEN_MINUS; ; index = 999 ; length = 1 line = 34 ; column = 73 ; value ='-'; } -{kind = TOKEN_INTLITERAL; ; index = 1001 ; length = 1 line = 34 ; column = 75 ; value ='1'; } -{kind = TOKEN_COMMA; ; index = 1002 ; length = 1 line = 34 ; column = 76 ; value =','; } -{kind = TOKEN_FLOATLITERAL; ; index = 1004 ; length = 3 line = 34 ; column = 78 ; value ='0'; } -{kind = TOKEN_COMMA; ; index = 1007 ; length = 1 line = 34 ; column = 81 ; value =','; } -{kind = TOKEN_FLOATLITERAL; ; index = 1009 ; length = 3 line = 34 ; column = 83 ; value ='1'; } -{kind = TOKEN_RIGHTPAREN; ; index = 1012 ; length = 1 line = 34 ; column = 86 ; value =')'; } -{kind = TOKEN_SEMICOLON; ; index = 1013 ; length = 1 line = 34 ; column = 87 ; value =';'; } -{kind = TOKEN_RETURN; ; index = 1019 ; length = 6 line = 36 ; column = 0 ; value ='return'; } -{kind = TOKEN_IDENTIFIER; ; index = 1026 ; length = 6 line = 36 ; column = 7 ; value ='result'; } -{kind = TOKEN_SEMICOLON; ; index = 1032 ; length = 1 line = 36 ; column = 13 ; value =';'; } -{kind = TOKEN_RIGHTBRACE; ; index = 1035 ; length = 1 line = 37 ; column = 0 ; value ='}'; } -{kind = TOKEN_PIXEL; ; index = 1040 ; length = 5 line = 39 ; column = 0 ; value ='pixel'; } -{kind = TOKEN_IDENTIFIER; ; index = 1046 ; length = 4 line = 39 ; column = 6 ; value ='main'; } -{kind = TOKEN_DOUBLECOLON; ; index = 1051 ; length = 2 line = 39 ; column = 11 ; value ='::'; } -{kind = TOKEN_LEFTPAREN; ; index = 1054 ; length = 1 line = 39 ; column = 14 ; value ='('; } -{kind = TOKEN_IDENTIFIER; ; index = 1055 ; length = 5 line = 39 ; column = 15 ; value ='input'; } -{kind = TOKEN_COLON; ; index = 1061 ; length = 1 line = 39 ; column = 21 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 1063 ; length = 8 line = 39 ; column = 23 ; value ='PS_Input'; } -{kind = TOKEN_RIGHTPAREN; ; index = 1071 ; length = 1 line = 39 ; column = 31 ; value =')'; } -{kind = TOKEN_ARROW; ; index = 1073 ; length = 2 line = 39 ; column = 33 ; value ='->'; } -{kind = TOKEN_IDENTIFIER; ; index = 1076 ; length = 6 line = 39 ; column = 36 ; value ='float4'; } -{kind = TOKEN_AT; ; index = 1083 ; length = 1 line = 39 ; column = 43 ; value ='@'; } -{kind = TOKEN_IDENTIFIER; ; index = 1084 ; length = 7 line = 39 ; column = 44 ; value ='target0'; } -{kind = TOKEN_LEFTBRACE; ; index = 1092 ; length = 1 line = 39 ; column = 52 ; value ='{'; } -{kind = TOKEN_IDENTIFIER; ; index = 1096 ; length = 5 line = 40 ; column = 0 ; value ='color'; } -{kind = TOKEN_COLON; ; index = 1102 ; length = 1 line = 40 ; column = 6 ; value =':'; } -{kind = TOKEN_IDENTIFIER; ; index = 1104 ; length = 6 line = 40 ; column = 8 ; value ='float4'; } -{kind = TOKEN_ASSIGN; ; index = 1111 ; length = 1 line = 40 ; column = 15 ; value ='='; } -{kind = TOKEN_IDENTIFIER; ; index = 1113 ; length = 1 line = 40 ; column = 17 ; value ='p'; } -{kind = TOKEN_DOT; ; index = 1114 ; length = 1 line = 40 ; column = 18 ; value ='.'; } -{kind = TOKEN_IDENTIFIER; ; index = 1115 ; length = 5 line = 40 ; column = 19 ; value ='color'; } -{kind = TOKEN_SEMICOLON; ; index = 1120 ; length = 1 line = 40 ; column = 24 ; value =';'; } -{kind = TOKEN_RETURN; ; index = 1124 ; length = 6 line = 41 ; column = 0 ; value ='return'; } -{kind = TOKEN_IDENTIFIER; ; index = 1131 ; length = 5 line = 41 ; column = 7 ; value ='color'; } -{kind = TOKEN_SEMICOLON; ; index = 1136 ; length = 1 line = 41 ; column = 12 ; value =';'; } -{kind = TOKEN_RIGHTBRACE; ; index = 1139 ; length = 1 line = 42 ; column = 0 ; value ='}'; } -{kind = TOKEN_EOF; ; index = 1142 ; length = 0 line = 43 ; column = 0 ; value =''; } +{kind = TOKEN_CONSTANT_BUFFER; ; index = 5 ; length = 15 line = 1 ; column = 5 ; value ='constant_buffer'; } +{kind = TOKEN_AT; ; index = 21 ; length = 1 line = 1 ; column = 21 ; value ='@'; } +{kind = TOKEN_IDENTIFIER; ; index = 22 ; length = 10 line = 1 ; column = 22 ; value ='properties'; } +{kind = TOKEN_LEFTBRACE; ; index = 33 ; length = 1 line = 1 ; column = 33 ; value ='{'; } +{kind = TOKEN_IDENTIFIER; ; index = 37 ; length = 5 line = 2 ; column = 0 ; value ='color'; } +{kind = TOKEN_COLON; ; index = 51 ; length = 1 line = 2 ; column = 14 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 53 ; length = 6 line = 2 ; column = 16 ; value ='float4'; } +{kind = TOKEN_SEMICOLON; ; index = 59 ; length = 1 line = 2 ; column = 22 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 63 ; length = 13 line = 3 ; column = 0 ; value ='rect_position'; } +{kind = TOKEN_COLON; ; index = 77 ; length = 1 line = 3 ; column = 14 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 79 ; length = 6 line = 3 ; column = 16 ; value ='float2'; } +{kind = TOKEN_SEMICOLON; ; index = 85 ; length = 1 line = 3 ; column = 22 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 89 ; length = 10 line = 4 ; column = 0 ; value ='rect_scale'; } +{kind = TOKEN_COLON; ; index = 103 ; length = 1 line = 4 ; column = 14 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 105 ; length = 6 line = 4 ; column = 16 ; value ='float2'; } +{kind = TOKEN_SEMICOLON; ; index = 111 ; length = 1 line = 4 ; column = 22 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 115 ; length = 10 line = 5 ; column = 0 ; value ='resolution'; } +{kind = TOKEN_COLON; ; index = 129 ; length = 1 line = 5 ; column = 14 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 131 ; length = 6 line = 5 ; column = 16 ; value ='float2'; } +{kind = TOKEN_SEMICOLON; ; index = 137 ; length = 1 line = 5 ; column = 22 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 141 ; length = 7 line = 6 ; column = 0 ; value ='texture'; } +{kind = TOKEN_COLON; ; index = 155 ; length = 1 line = 6 ; column = 14 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 157 ; length = 9 line = 6 ; column = 16 ; value ='Texture2D'; } +{kind = TOKEN_SEMICOLON; ; index = 166 ; length = 1 line = 6 ; column = 25 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 170 ; length = 7 line = 7 ; column = 0 ; value ='sampler'; } +{kind = TOKEN_COLON; ; index = 184 ; length = 1 line = 7 ; column = 14 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 186 ; length = 7 line = 7 ; column = 16 ; value ='Sampler'; } +{kind = TOKEN_SEMICOLON; ; index = 193 ; length = 1 line = 7 ; column = 23 ; value =';'; } +{kind = TOKEN_RIGHTBRACE; ; index = 196 ; length = 1 line = 8 ; column = 0 ; value ='}'; } +{kind = TOKEN_IDENTIFIER; ; index = 201 ; length = 8 line = 10 ; column = 0 ; value ='PS_Input'; } +{kind = TOKEN_DOUBLECOLON; ; index = 210 ; length = 2 line = 10 ; column = 9 ; value ='::'; } +{kind = TOKEN_STRUCT; ; index = 213 ; length = 6 line = 10 ; column = 12 ; value ='struct'; } +{kind = TOKEN_LEFTBRACE; ; index = 220 ; length = 1 line = 10 ; column = 19 ; value ='{'; } +{kind = TOKEN_IDENTIFIER; ; index = 224 ; length = 2 line = 11 ; column = 0 ; value ='uv'; } +{kind = TOKEN_COLON; ; index = 227 ; length = 1 line = 11 ; column = 3 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 229 ; length = 6 line = 11 ; column = 5 ; value ='float2'; } +{kind = TOKEN_AT; ; index = 236 ; length = 1 line = 11 ; column = 12 ; value ='@'; } +{kind = TOKEN_IDENTIFIER; ; index = 237 ; length = 2 line = 11 ; column = 13 ; value ='uv'; } +{kind = TOKEN_SEMICOLON; ; index = 239 ; length = 1 line = 11 ; column = 15 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 243 ; length = 3 line = 12 ; column = 0 ; value ='pos'; } +{kind = TOKEN_COLON; ; index = 247 ; length = 1 line = 12 ; column = 4 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 249 ; length = 6 line = 12 ; column = 6 ; value ='float4'; } +{kind = TOKEN_AT; ; index = 256 ; length = 1 line = 12 ; column = 13 ; value ='@'; } +{kind = TOKEN_IDENTIFIER; ; index = 257 ; length = 3 line = 12 ; column = 14 ; value ='pos'; } +{kind = TOKEN_SEMICOLON; ; index = 260 ; length = 1 line = 12 ; column = 17 ; value =';'; } +{kind = TOKEN_RIGHTBRACE; ; index = 263 ; length = 1 line = 13 ; column = 0 ; value ='}'; } +{kind = TOKEN_VERTEX; ; index = 268 ; length = 6 line = 15 ; column = 0 ; value ='vertex'; } +{kind = TOKEN_IDENTIFIER; ; index = 275 ; length = 4 line = 15 ; column = 7 ; value ='main'; } +{kind = TOKEN_DOUBLECOLON; ; index = 280 ; length = 2 line = 15 ; column = 12 ; value ='::'; } +{kind = TOKEN_LEFTPAREN; ; index = 283 ; length = 1 line = 15 ; column = 15 ; value ='('; } +{kind = TOKEN_IDENTIFIER; ; index = 284 ; length = 3 line = 15 ; column = 16 ; value ='pos'; } +{kind = TOKEN_COLON; ; index = 288 ; length = 1 line = 15 ; column = 20 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 290 ; length = 6 line = 15 ; column = 22 ; value ='float4'; } +{kind = TOKEN_AT; ; index = 297 ; length = 1 line = 15 ; column = 29 ; value ='@'; } +{kind = TOKEN_IDENTIFIER; ; index = 298 ; length = 8 line = 15 ; column = 30 ; value ='position'; } +{kind = TOKEN_RIGHTPAREN; ; index = 306 ; length = 1 line = 15 ; column = 38 ; value =')'; } +{kind = TOKEN_ARROW; ; index = 308 ; length = 2 line = 15 ; column = 40 ; value ='->'; } +{kind = TOKEN_IDENTIFIER; ; index = 311 ; length = 8 line = 15 ; column = 43 ; value ='PS_Input'; } +{kind = TOKEN_LEFTBRACE; ; index = 320 ; length = 1 line = 15 ; column = 52 ; value ='{'; } +{kind = TOKEN_IDENTIFIER; ; index = 324 ; length = 3 line = 16 ; column = 0 ; value ='res'; } +{kind = TOKEN_COLON; ; index = 333 ; length = 1 line = 16 ; column = 9 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 335 ; length = 6 line = 16 ; column = 11 ; value ='float2'; } +{kind = TOKEN_ASSIGN; ; index = 342 ; length = 1 line = 16 ; column = 18 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 344 ; length = 1 line = 16 ; column = 20 ; value ='p'; } +{kind = TOKEN_DOT; ; index = 345 ; length = 1 line = 16 ; column = 21 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 346 ; length = 10 line = 16 ; column = 22 ; value ='resolution'; } +{kind = TOKEN_SEMICOLON; ; index = 356 ; length = 1 line = 16 ; column = 32 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 360 ; length = 5 line = 17 ; column = 0 ; value ='scale'; } +{kind = TOKEN_COLON; ; index = 369 ; length = 1 line = 17 ; column = 9 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 371 ; length = 6 line = 17 ; column = 11 ; value ='float2'; } +{kind = TOKEN_ASSIGN; ; index = 378 ; length = 1 line = 17 ; column = 18 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 380 ; length = 1 line = 17 ; column = 20 ; value ='p'; } +{kind = TOKEN_DOT; ; index = 381 ; length = 1 line = 17 ; column = 21 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 382 ; length = 10 line = 17 ; column = 22 ; value ='rect_scale'; } +{kind = TOKEN_SEMICOLON; ; index = 392 ; length = 1 line = 17 ; column = 32 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 396 ; length = 8 line = 18 ; column = 0 ; value ='rect_pos'; } +{kind = TOKEN_COLON; ; index = 405 ; length = 1 line = 18 ; column = 9 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 407 ; length = 6 line = 18 ; column = 11 ; value ='float2'; } +{kind = TOKEN_ASSIGN; ; index = 414 ; length = 1 line = 18 ; column = 18 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 416 ; length = 1 line = 18 ; column = 20 ; value ='p'; } +{kind = TOKEN_DOT; ; index = 417 ; length = 1 line = 18 ; column = 21 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 418 ; length = 13 line = 18 ; column = 22 ; value ='rect_position'; } +{kind = TOKEN_SEMICOLON; ; index = 431 ; length = 1 line = 18 ; column = 35 ; value =';'; } +{kind = TOKEN_SEMICOLON; ; index = 432 ; length = 1 line = 18 ; column = 36 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 438 ; length = 6 line = 20 ; column = 0 ; value ='center'; } +{kind = TOKEN_COLON; ; index = 445 ; length = 1 line = 20 ; column = 7 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 447 ; length = 6 line = 20 ; column = 9 ; value ='float2'; } +{kind = TOKEN_ASSIGN; ; index = 454 ; length = 1 line = 20 ; column = 16 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 456 ; length = 8 line = 20 ; column = 18 ; value ='rect_pos'; } +{kind = TOKEN_SEMICOLON; ; index = 464 ; length = 1 line = 20 ; column = 26 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 468 ; length = 9 line = 21 ; column = 0 ; value ='half_size'; } +{kind = TOKEN_COLON; ; index = 479 ; length = 1 line = 21 ; column = 11 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 481 ; length = 6 line = 21 ; column = 13 ; value ='float2'; } +{kind = TOKEN_ASSIGN; ; index = 488 ; length = 1 line = 21 ; column = 20 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 490 ; length = 6 line = 21 ; column = 22 ; value ='float2'; } +{kind = TOKEN_LEFTPAREN; ; index = 496 ; length = 1 line = 21 ; column = 28 ; value ='('; } +{kind = TOKEN_IDENTIFIER; ; index = 497 ; length = 5 line = 21 ; column = 29 ; value ='scale'; } +{kind = TOKEN_DOT; ; index = 502 ; length = 1 line = 21 ; column = 34 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 503 ; length = 1 line = 21 ; column = 35 ; value ='x'; } +{kind = TOKEN_SLASH; ; index = 505 ; length = 1 line = 21 ; column = 37 ; value ='/'; } +{kind = TOKEN_INTLITERAL; ; index = 507 ; length = 1 line = 21 ; column = 39 ; value ='2'; } +{kind = TOKEN_COMMA; ; index = 508 ; length = 1 line = 21 ; column = 40 ; value =','; } +{kind = TOKEN_IDENTIFIER; ; index = 510 ; length = 5 line = 21 ; column = 42 ; value ='scale'; } +{kind = TOKEN_DOT; ; index = 515 ; length = 1 line = 21 ; column = 47 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 516 ; length = 1 line = 21 ; column = 48 ; value ='y'; } +{kind = TOKEN_SLASH; ; index = 518 ; length = 1 line = 21 ; column = 50 ; value ='/'; } +{kind = TOKEN_INTLITERAL; ; index = 520 ; length = 1 line = 21 ; column = 52 ; value ='2'; } +{kind = TOKEN_RIGHTPAREN; ; index = 521 ; length = 1 line = 21 ; column = 53 ; value =')'; } +{kind = TOKEN_SEMICOLON; ; index = 522 ; length = 1 line = 21 ; column = 54 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 526 ; length = 7 line = 22 ; column = 0 ; value ='dst_pos'; } +{kind = TOKEN_COLON; ; index = 537 ; length = 1 line = 22 ; column = 11 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 539 ; length = 6 line = 22 ; column = 13 ; value ='float4'; } +{kind = TOKEN_ASSIGN; ; index = 546 ; length = 1 line = 22 ; column = 20 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 548 ; length = 6 line = 22 ; column = 22 ; value ='float4'; } +{kind = TOKEN_LEFTPAREN; ; index = 554 ; length = 1 line = 22 ; column = 28 ; value ='('; } +{kind = TOKEN_IDENTIFIER; ; index = 555 ; length = 3 line = 22 ; column = 29 ; value ='pos'; } +{kind = TOKEN_DOT; ; index = 558 ; length = 1 line = 22 ; column = 32 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 559 ; length = 1 line = 22 ; column = 33 ; value ='x'; } +{kind = TOKEN_STAR; ; index = 561 ; length = 1 line = 22 ; column = 35 ; value ='*'; } +{kind = TOKEN_IDENTIFIER; ; index = 563 ; length = 9 line = 22 ; column = 37 ; value ='half_size'; } +{kind = TOKEN_DOT; ; index = 572 ; length = 1 line = 22 ; column = 46 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 573 ; length = 1 line = 22 ; column = 47 ; value ='x'; } +{kind = TOKEN_PLUS; ; index = 575 ; length = 1 line = 22 ; column = 49 ; value ='+'; } +{kind = TOKEN_IDENTIFIER; ; index = 577 ; length = 6 line = 22 ; column = 51 ; value ='center'; } +{kind = TOKEN_DOT; ; index = 583 ; length = 1 line = 22 ; column = 57 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 584 ; length = 1 line = 22 ; column = 58 ; value ='x'; } +{kind = TOKEN_COMMA; ; index = 585 ; length = 1 line = 22 ; column = 59 ; value =','; } +{kind = TOKEN_IDENTIFIER; ; index = 587 ; length = 3 line = 22 ; column = 61 ; value ='pos'; } +{kind = TOKEN_DOT; ; index = 590 ; length = 1 line = 22 ; column = 64 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 591 ; length = 1 line = 22 ; column = 65 ; value ='y'; } +{kind = TOKEN_STAR; ; index = 593 ; length = 1 line = 22 ; column = 67 ; value ='*'; } +{kind = TOKEN_IDENTIFIER; ; index = 595 ; length = 9 line = 22 ; column = 69 ; value ='half_size'; } +{kind = TOKEN_DOT; ; index = 604 ; length = 1 line = 22 ; column = 78 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 605 ; length = 1 line = 22 ; column = 79 ; value ='y'; } +{kind = TOKEN_PLUS; ; index = 607 ; length = 1 line = 22 ; column = 81 ; value ='+'; } +{kind = TOKEN_IDENTIFIER; ; index = 609 ; length = 6 line = 22 ; column = 83 ; value ='center'; } +{kind = TOKEN_DOT; ; index = 615 ; length = 1 line = 22 ; column = 89 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 616 ; length = 1 line = 22 ; column = 90 ; value ='y'; } +{kind = TOKEN_COMMA; ; index = 617 ; length = 1 line = 22 ; column = 91 ; value =','; } +{kind = TOKEN_FLOATLITERAL; ; index = 619 ; length = 3 line = 22 ; column = 93 ; value ='0'; } +{kind = TOKEN_COMMA; ; index = 622 ; length = 1 line = 22 ; column = 96 ; value =','; } +{kind = TOKEN_FLOATLITERAL; ; index = 624 ; length = 3 line = 22 ; column = 98 ; value ='1'; } +{kind = TOKEN_RIGHTPAREN; ; index = 627 ; length = 1 line = 22 ; column = 101 ; value =')'; } +{kind = TOKEN_SEMICOLON; ; index = 628 ; length = 1 line = 22 ; column = 102 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 634 ; length = 6 line = 24 ; column = 0 ; value ='result'; } +{kind = TOKEN_COLON; ; index = 641 ; length = 1 line = 24 ; column = 7 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 643 ; length = 8 line = 24 ; column = 9 ; value ='PS_Input'; } +{kind = TOKEN_SEMICOLON; ; index = 651 ; length = 1 line = 24 ; column = 17 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 657 ; length = 6 line = 26 ; column = 0 ; value ='src_p0'; } +{kind = TOKEN_COLON; ; index = 664 ; length = 1 line = 26 ; column = 7 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 666 ; length = 6 line = 26 ; column = 9 ; value ='float2'; } +{kind = TOKEN_ASSIGN; ; index = 673 ; length = 1 line = 26 ; column = 16 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 675 ; length = 6 line = 26 ; column = 18 ; value ='float2'; } +{kind = TOKEN_LEFTPAREN; ; index = 681 ; length = 1 line = 26 ; column = 24 ; value ='('; } +{kind = TOKEN_FLOATLITERAL; ; index = 682 ; length = 3 line = 26 ; column = 25 ; value ='0'; } +{kind = TOKEN_COMMA; ; index = 685 ; length = 1 line = 26 ; column = 28 ; value =','; } +{kind = TOKEN_FLOATLITERAL; ; index = 687 ; length = 3 line = 26 ; column = 30 ; value ='1'; } +{kind = TOKEN_RIGHTPAREN; ; index = 690 ; length = 1 line = 26 ; column = 33 ; value =')'; } +{kind = TOKEN_SEMICOLON; ; index = 691 ; length = 1 line = 26 ; column = 34 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 695 ; length = 6 line = 27 ; column = 0 ; value ='src_p1'; } +{kind = TOKEN_COLON; ; index = 702 ; length = 1 line = 27 ; column = 7 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 704 ; length = 6 line = 27 ; column = 9 ; value ='float2'; } +{kind = TOKEN_ASSIGN; ; index = 711 ; length = 1 line = 27 ; column = 16 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 713 ; length = 6 line = 27 ; column = 18 ; value ='float2'; } +{kind = TOKEN_LEFTPAREN; ; index = 719 ; length = 1 line = 27 ; column = 24 ; value ='('; } +{kind = TOKEN_FLOATLITERAL; ; index = 720 ; length = 3 line = 27 ; column = 25 ; value ='1'; } +{kind = TOKEN_COMMA; ; index = 723 ; length = 1 line = 27 ; column = 28 ; value =','; } +{kind = TOKEN_FLOATLITERAL; ; index = 725 ; length = 3 line = 27 ; column = 30 ; value ='0'; } +{kind = TOKEN_RIGHTPAREN; ; index = 728 ; length = 1 line = 27 ; column = 33 ; value =')'; } +{kind = TOKEN_SEMICOLON; ; index = 729 ; length = 1 line = 27 ; column = 34 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 735 ; length = 13 line = 29 ; column = 0 ; value ='src_half_size'; } +{kind = TOKEN_COLON; ; index = 749 ; length = 1 line = 29 ; column = 14 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 751 ; length = 6 line = 29 ; column = 16 ; value ='float2'; } +{kind = TOKEN_ASSIGN; ; index = 758 ; length = 1 line = 29 ; column = 23 ; value ='='; } +{kind = TOKEN_LEFTPAREN; ; index = 760 ; length = 1 line = 29 ; column = 25 ; value ='('; } +{kind = TOKEN_IDENTIFIER; ; index = 761 ; length = 6 line = 29 ; column = 26 ; value ='src_p1'; } +{kind = TOKEN_MINUS; ; index = 768 ; length = 1 line = 29 ; column = 33 ; value ='-'; } +{kind = TOKEN_IDENTIFIER; ; index = 770 ; length = 6 line = 29 ; column = 35 ; value ='src_p0'; } +{kind = TOKEN_RIGHTPAREN; ; index = 776 ; length = 1 line = 29 ; column = 41 ; value =')'; } +{kind = TOKEN_SLASH; ; index = 778 ; length = 1 line = 29 ; column = 43 ; value ='/'; } +{kind = TOKEN_INTLITERAL; ; index = 780 ; length = 1 line = 29 ; column = 45 ; value ='2'; } +{kind = TOKEN_SEMICOLON; ; index = 781 ; length = 1 line = 29 ; column = 46 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 785 ; length = 10 line = 30 ; column = 0 ; value ='src_center'; } +{kind = TOKEN_COLON; ; index = 799 ; length = 1 line = 30 ; column = 14 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 801 ; length = 6 line = 30 ; column = 16 ; value ='float2'; } +{kind = TOKEN_ASSIGN; ; index = 808 ; length = 1 line = 30 ; column = 23 ; value ='='; } +{kind = TOKEN_LEFTPAREN; ; index = 810 ; length = 1 line = 30 ; column = 25 ; value ='('; } +{kind = TOKEN_IDENTIFIER; ; index = 811 ; length = 6 line = 30 ; column = 26 ; value ='src_p1'; } +{kind = TOKEN_PLUS; ; index = 818 ; length = 1 line = 30 ; column = 33 ; value ='+'; } +{kind = TOKEN_IDENTIFIER; ; index = 820 ; length = 6 line = 30 ; column = 35 ; value ='src_p0'; } +{kind = TOKEN_RIGHTPAREN; ; index = 826 ; length = 1 line = 30 ; column = 41 ; value =')'; } +{kind = TOKEN_SLASH; ; index = 828 ; length = 1 line = 30 ; column = 43 ; value ='/'; } +{kind = TOKEN_INTLITERAL; ; index = 830 ; length = 1 line = 30 ; column = 45 ; value ='2'; } +{kind = TOKEN_SEMICOLON; ; index = 831 ; length = 1 line = 30 ; column = 46 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 835 ; length = 7 line = 31 ; column = 0 ; value ='src_pos'; } +{kind = TOKEN_COLON; ; index = 849 ; length = 1 line = 31 ; column = 14 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 851 ; length = 6 line = 31 ; column = 16 ; value ='float2'; } +{kind = TOKEN_ASSIGN; ; index = 858 ; length = 1 line = 31 ; column = 23 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 860 ; length = 6 line = 31 ; column = 25 ; value ='float2'; } +{kind = TOKEN_LEFTPAREN; ; index = 866 ; length = 1 line = 31 ; column = 31 ; value ='('; } +{kind = TOKEN_IDENTIFIER; ; index = 867 ; length = 3 line = 31 ; column = 32 ; value ='pos'; } +{kind = TOKEN_DOT; ; index = 870 ; length = 1 line = 31 ; column = 35 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 871 ; length = 1 line = 31 ; column = 36 ; value ='x'; } +{kind = TOKEN_COMMA; ; index = 872 ; length = 1 line = 31 ; column = 37 ; value =','; } +{kind = TOKEN_IDENTIFIER; ; index = 874 ; length = 3 line = 31 ; column = 39 ; value ='pos'; } +{kind = TOKEN_DOT; ; index = 877 ; length = 1 line = 31 ; column = 42 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 878 ; length = 1 line = 31 ; column = 43 ; value ='y'; } +{kind = TOKEN_RIGHTPAREN; ; index = 879 ; length = 1 line = 31 ; column = 44 ; value =')'; } +{kind = TOKEN_STAR; ; index = 881 ; length = 1 line = 31 ; column = 46 ; value ='*'; } +{kind = TOKEN_IDENTIFIER; ; index = 883 ; length = 13 line = 31 ; column = 48 ; value ='src_half_size'; } +{kind = TOKEN_PLUS; ; index = 897 ; length = 1 line = 31 ; column = 62 ; value ='+'; } +{kind = TOKEN_IDENTIFIER; ; index = 899 ; length = 10 line = 31 ; column = 64 ; value ='src_center'; } +{kind = TOKEN_SEMICOLON; ; index = 909 ; length = 1 line = 31 ; column = 74 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 915 ; length = 6 line = 33 ; column = 0 ; value ='result'; } +{kind = TOKEN_DOT; ; index = 921 ; length = 1 line = 33 ; column = 6 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 922 ; length = 2 line = 33 ; column = 7 ; value ='uv'; } +{kind = TOKEN_ASSIGN; ; index = 925 ; length = 1 line = 33 ; column = 10 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 927 ; length = 6 line = 33 ; column = 12 ; value ='float2'; } +{kind = TOKEN_LEFTPAREN; ; index = 933 ; length = 1 line = 33 ; column = 18 ; value ='('; } +{kind = TOKEN_INTLITERAL; ; index = 934 ; length = 1 line = 33 ; column = 19 ; value ='1'; } +{kind = TOKEN_COMMA; ; index = 935 ; length = 1 line = 33 ; column = 20 ; value =','; } +{kind = TOKEN_INTLITERAL; ; index = 937 ; length = 1 line = 33 ; column = 22 ; value ='1'; } +{kind = TOKEN_RIGHTPAREN; ; index = 938 ; length = 1 line = 33 ; column = 23 ; value =')'; } +{kind = TOKEN_SEMICOLON; ; index = 939 ; length = 1 line = 33 ; column = 24 ; value =';'; } +{kind = TOKEN_IDENTIFIER; ; index = 943 ; length = 6 line = 34 ; column = 0 ; value ='result'; } +{kind = TOKEN_DOT; ; index = 949 ; length = 1 line = 34 ; column = 6 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 950 ; length = 3 line = 34 ; column = 7 ; value ='pos'; } +{kind = TOKEN_ASSIGN; ; index = 954 ; length = 1 line = 34 ; column = 11 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 956 ; length = 6 line = 34 ; column = 13 ; value ='float4'; } +{kind = TOKEN_LEFTPAREN; ; index = 962 ; length = 1 line = 34 ; column = 19 ; value ='('; } +{kind = TOKEN_FLOATLITERAL; ; index = 963 ; length = 3 line = 34 ; column = 20 ; value ='2'; } +{kind = TOKEN_STAR; ; index = 967 ; length = 1 line = 34 ; column = 24 ; value ='*'; } +{kind = TOKEN_IDENTIFIER; ; index = 969 ; length = 7 line = 34 ; column = 26 ; value ='dst_pos'; } +{kind = TOKEN_DOT; ; index = 976 ; length = 1 line = 34 ; column = 33 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 977 ; length = 1 line = 34 ; column = 34 ; value ='x'; } +{kind = TOKEN_SLASH; ; index = 979 ; length = 1 line = 34 ; column = 36 ; value ='/'; } +{kind = TOKEN_IDENTIFIER; ; index = 981 ; length = 3 line = 34 ; column = 38 ; value ='res'; } +{kind = TOKEN_DOT; ; index = 984 ; length = 1 line = 34 ; column = 41 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 985 ; length = 1 line = 34 ; column = 42 ; value ='x'; } +{kind = TOKEN_MINUS; ; index = 987 ; length = 1 line = 34 ; column = 44 ; value ='-'; } +{kind = TOKEN_INTLITERAL; ; index = 989 ; length = 1 line = 34 ; column = 46 ; value ='1'; } +{kind = TOKEN_COMMA; ; index = 990 ; length = 1 line = 34 ; column = 47 ; value =','; } +{kind = TOKEN_FLOATLITERAL; ; index = 992 ; length = 3 line = 34 ; column = 49 ; value ='2'; } +{kind = TOKEN_STAR; ; index = 996 ; length = 1 line = 34 ; column = 53 ; value ='*'; } +{kind = TOKEN_IDENTIFIER; ; index = 998 ; length = 7 line = 34 ; column = 55 ; value ='dst_pos'; } +{kind = TOKEN_DOT; ; index = 1005 ; length = 1 line = 34 ; column = 62 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 1006 ; length = 1 line = 34 ; column = 63 ; value ='y'; } +{kind = TOKEN_SLASH; ; index = 1008 ; length = 1 line = 34 ; column = 65 ; value ='/'; } +{kind = TOKEN_IDENTIFIER; ; index = 1010 ; length = 3 line = 34 ; column = 67 ; value ='res'; } +{kind = TOKEN_DOT; ; index = 1013 ; length = 1 line = 34 ; column = 70 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 1014 ; length = 1 line = 34 ; column = 71 ; value ='y'; } +{kind = TOKEN_MINUS; ; index = 1016 ; length = 1 line = 34 ; column = 73 ; value ='-'; } +{kind = TOKEN_INTLITERAL; ; index = 1018 ; length = 1 line = 34 ; column = 75 ; value ='1'; } +{kind = TOKEN_COMMA; ; index = 1019 ; length = 1 line = 34 ; column = 76 ; value =','; } +{kind = TOKEN_FLOATLITERAL; ; index = 1021 ; length = 3 line = 34 ; column = 78 ; value ='0'; } +{kind = TOKEN_COMMA; ; index = 1024 ; length = 1 line = 34 ; column = 81 ; value =','; } +{kind = TOKEN_FLOATLITERAL; ; index = 1026 ; length = 3 line = 34 ; column = 83 ; value ='1'; } +{kind = TOKEN_RIGHTPAREN; ; index = 1029 ; length = 1 line = 34 ; column = 86 ; value =')'; } +{kind = TOKEN_SEMICOLON; ; index = 1030 ; length = 1 line = 34 ; column = 87 ; value =';'; } +{kind = TOKEN_RETURN; ; index = 1036 ; length = 6 line = 36 ; column = 0 ; value ='return'; } +{kind = TOKEN_IDENTIFIER; ; index = 1043 ; length = 6 line = 36 ; column = 7 ; value ='result'; } +{kind = TOKEN_SEMICOLON; ; index = 1049 ; length = 1 line = 36 ; column = 13 ; value =';'; } +{kind = TOKEN_RIGHTBRACE; ; index = 1052 ; length = 1 line = 37 ; column = 0 ; value ='}'; } +{kind = TOKEN_PIXEL; ; index = 1057 ; length = 5 line = 39 ; column = 0 ; value ='pixel'; } +{kind = TOKEN_IDENTIFIER; ; index = 1063 ; length = 4 line = 39 ; column = 6 ; value ='main'; } +{kind = TOKEN_DOUBLECOLON; ; index = 1068 ; length = 2 line = 39 ; column = 11 ; value ='::'; } +{kind = TOKEN_LEFTPAREN; ; index = 1071 ; length = 1 line = 39 ; column = 14 ; value ='('; } +{kind = TOKEN_IDENTIFIER; ; index = 1072 ; length = 5 line = 39 ; column = 15 ; value ='input'; } +{kind = TOKEN_COLON; ; index = 1078 ; length = 1 line = 39 ; column = 21 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 1080 ; length = 8 line = 39 ; column = 23 ; value ='PS_Input'; } +{kind = TOKEN_RIGHTPAREN; ; index = 1088 ; length = 1 line = 39 ; column = 31 ; value =')'; } +{kind = TOKEN_ARROW; ; index = 1090 ; length = 2 line = 39 ; column = 33 ; value ='->'; } +{kind = TOKEN_IDENTIFIER; ; index = 1093 ; length = 6 line = 39 ; column = 36 ; value ='float4'; } +{kind = TOKEN_AT; ; index = 1100 ; length = 1 line = 39 ; column = 43 ; value ='@'; } +{kind = TOKEN_IDENTIFIER; ; index = 1101 ; length = 7 line = 39 ; column = 44 ; value ='target0'; } +{kind = TOKEN_LEFTBRACE; ; index = 1109 ; length = 1 line = 39 ; column = 52 ; value ='{'; } +{kind = TOKEN_IDENTIFIER; ; index = 1113 ; length = 5 line = 40 ; column = 0 ; value ='color'; } +{kind = TOKEN_COLON; ; index = 1119 ; length = 1 line = 40 ; column = 6 ; value =':'; } +{kind = TOKEN_IDENTIFIER; ; index = 1121 ; length = 6 line = 40 ; column = 8 ; value ='float4'; } +{kind = TOKEN_ASSIGN; ; index = 1128 ; length = 1 line = 40 ; column = 15 ; value ='='; } +{kind = TOKEN_IDENTIFIER; ; index = 1130 ; length = 1 line = 40 ; column = 17 ; value ='p'; } +{kind = TOKEN_DOT; ; index = 1131 ; length = 1 line = 40 ; column = 18 ; value ='.'; } +{kind = TOKEN_IDENTIFIER; ; index = 1132 ; length = 5 line = 40 ; column = 19 ; value ='color'; } +{kind = TOKEN_SEMICOLON; ; index = 1137 ; length = 1 line = 40 ; column = 24 ; value =';'; } +{kind = TOKEN_RETURN; ; index = 1141 ; length = 6 line = 41 ; column = 0 ; value ='return'; } +{kind = TOKEN_IDENTIFIER; ; index = 1148 ; length = 5 line = 41 ; column = 7 ; value ='color'; } +{kind = TOKEN_SEMICOLON; ; index = 1153 ; length = 1 line = 41 ; column = 12 ; value =';'; } +{kind = TOKEN_RIGHTBRACE; ; index = 1156 ; length = 1 line = 42 ; column = 0 ; value ='}'; } +{kind = TOKEN_EOF; ; index = 1159 ; length = 0 line = 43 ; column = 0 ; value =''; } diff --git a/test/lex_all.suite b/test/lex_all.suite index 61d642e..dc0a147 100644 --- a/test/lex_all.suite +++ b/test/lex_all.suite @@ -26,14 +26,12 @@ test/if_def_expression.ink lex test/if_if_if.ink lex test/inferred_types.ink lex test/large_block.ink lex -test/meta_block.ink lex test/multiple_functions.ink lex test/multiple_semicolons_everywhere.ink lex test/nested_if.ink lex test/non_bool_cond.ink lex test/pass_and_access_struct_fields_in_functions.ink lex test/passthrough.ink lex -test/property_rename.ink lex test/redeclared_variable.ink lex test/simple_else_if.ink lex test/simple_if_else.ink lex diff --git a/test/meta_block.ink b/test/meta_block.ink deleted file mode 100644 index 1c2695b..0000000 --- a/test/meta_block.ink +++ /dev/null @@ -1,16 +0,0 @@ -meta { - name : LitBasic; - category : Scene; -} - -properties { - color : float4; -} - -vertex main :: (pos : float3 @position, uv : float2 @uv) -> float3 @position { - return pos; -} - -pixel main :: () -> float4 @target0 { - return properties.color; -} diff --git a/test/parse/basic_property_and_return_value.golden b/test/parse/basic_property_and_return_value.golden index 872ae3d..9b38159 100644 --- a/test/parse/basic_property_and_return_value.golden +++ b/test/parse/basic_property_and_return_value.golden @@ -1,5 +1,5 @@ (program - (properties + (constant_buffer properties (@properties) [(:= color float4)]) (fun vertex vs_main -> float3 (@position) diff --git a/test/parse/hinted_cbuffer.golden b/test/parse/hinted_cbuffer.golden new file mode 100644 index 0000000..10b3fb4 --- /dev/null +++ b/test/parse/hinted_cbuffer.golden @@ -0,0 +1,10 @@ +(program + (constant_buffer props (@properties) + [(:= projection float4x4 (@projection)) + (:= view float4x4 (@view))]) + + (fun vertex vs_main -> float4 (@position) + [(:= pos float4 (@position))] + (:= mv float4 (mul props.view pos)) + (:= mvp float4 (mul props.projection mv)) + (return mvp))) \ No newline at end of file diff --git a/test/parse/large_block.golden b/test/parse/large_block.golden index 0d179dd..e76ad08 100644 --- a/test/parse/large_block.golden +++ b/test/parse/large_block.golden @@ -1,5 +1,5 @@ (program - (properties p + (constant_buffer p (@properties) [(:= color float4) (:= rect_position float2) (:= rect_scale float2) diff --git a/test/parse_all.suite b/test/parse_all.suite index 5303a19..d4e1841 100644 --- a/test/parse_all.suite +++ b/test/parse_all.suite @@ -26,14 +26,12 @@ test/if_def_expression.ink parse test/if_if_if.ink parse test/inferred_types.ink parse test/large_block.ink parse -test/meta_block.ink parse test/multiple_functions.ink parse test/multiple_semicolons_everywhere.ink parse test/nested_if.ink parse test/non_bool_cond.ink parse test/pass_and_access_struct_fields_in_functions.ink parse test/passthrough.ink parse -test/property_rename.ink parse test/redeclared_variable.ink parse test/simple_else_if.ink parse test/simple_if_else.ink parse diff --git a/test/property_rename.ink b/test/property_rename.ink deleted file mode 100644 index 8367a5a..0000000 --- a/test/property_rename.ink +++ /dev/null @@ -1,11 +0,0 @@ -props :: properties { - color : float4; -} - -vertex main :: (pos : float4 @position) -> float4 @position { - return pos; -} - -pixel main :: () -> float4 @target0 { - return props.color; -}