-
-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
renderer: Finish glfx's GLSL parser #59
Comments
In Progress tok<0> idx<0> val<function> tok<1> idx<1> val<abc> tok<2> idx<2> val<(> tok<3> idx<3> val<int> tok<4> idx<4> val<x> tok<5> idx<5> val<,> tok<6> idx<6> val<float> tok<7> idx<7> val<y> tok<8> idx<8> val<)> tok<9> idx<9> val<{> tok<10> idx<10> val<b> tok<11> idx<11> val<=> tok<12> idx<12> val<(> tok<13> idx<13> val<a> tok<14> idx<14> val<+> tok<15> idx<15> val<v> tok<16> idx<16> val<)> tok<17> idx<17> val<*> tok<18> idx<18> val<7.0> tok<19> idx<19> val<;> tok<20> idx<20> val<}> [PARSER] SEQ<funcdef>: beg_match len<8> [PARSER] MATCHED word<function> [PARSER] SEQ<funcdef> : match_item<function> iter<0/8> st<0> end<20> MATCH [PARSER] MATCHED tok<abc> mname<kw_or_id> [PARSER] SEQ<funcdef> : match_item<kw_or_id> iter<1/8> st<1> end<20> MATCH [PARSER] MATCHED tok<(> mname<lparen> [PARSER] SEQ<funcdef> : match_item<lparen> iter<2/8> st<2> end<20> MATCH [PARSER] NOM0<fnd_args>: beg_match sub_matcher<argument_decl> [PARSER] SEQ<argument_decl>: beg_match len<3> [PARSER] MATCHED word<int> [PARSER] 1OF<>: MATCH sub_matcher<int> [PARSER] SEQ<argument_decl> : match_item<oneOf> iter<0/3> st<3> end<20> MATCH [PARSER] MATCHED tok<x> mname<kw_or_id> [PARSER] SEQ<argument_decl> : match_item<kw_or_id> iter<1/3> st<4> end<20> MATCH [PARSER] MATCHED tok<,> mname<comma> [PARSER] OPT<> MATCH sub<comma> [PARSER] MATCHED OPT<optional> [PARSER] SEQ<argument_decl> : match_item<optional> iter<2/3> st<5> end<20> MATCH [PARSER] MATCHED SEQ<argument_decl> [PARSER] NOM0<fnd_args> try_match iter<0> MATCH start<3> end<5> [PARSER] SEQ<argument_decl>: beg_match len<3> [PARSER] MATCHED word<float> [PARSER] 1OF<>: MATCH sub_matcher<float> [PARSER] SEQ<argument_decl> : match_item<oneOf> iter<0/3> st<6> end<20> MATCH [PARSER] MATCHED tok<y> mname<kw_or_id> [PARSER] SEQ<argument_decl> : match_item<kw_or_id> iter<1/3> st<7> end<20> MATCH [PARSER] OPT<> EMPTY [PARSER] MATCHED OPT<optional> [PARSER] SEQ<argument_decl> : match_item<optional> iter<2/3> st<8> end<20> MATCH: EMPTY [PARSER] MATCHED SEQ<argument_decl> [PARSER] NOM0<fnd_args> try_match iter<1> MATCH start<6> end<7> [PARSER] SEQ<argument_decl>: beg_match len<3> [PARSER] 1OF<>: NO-MATCH [PARSER] SEQ<argument_decl> : match_item<oneOf> iter<0/3> st<8> end<20> NO-MATCH [PARSER] NOM0<fnd_args> try_match iter<2> NO-MATCH [PARSER] NOM0<fnd_args>: MATCH count<2> st<3> en<7> [PARSER] MATCHED NOM<fnd_args> [PARSER] SEQ<funcdef> : match_item<fnd_args> iter<3/8> st<3> end<20> MATCH [PARSER] MATCHED tok<)> mname<rparen> [PARSER] SEQ<funcdef> : match_item<rparen> iter<4/8> st<8> end<20> MATCH [PARSER] MATCHED tok<{> mname<lcurly> [PARSER] SEQ<funcdef> : match_item<lcurly> iter<5/8> st<9> end<20> MATCH [PARSER] NOM0<fnd_statements>: beg_match sub_matcher<sequence> [PARSER] SEQ<sequence>: beg_match len<2> [PARSER] SEQ<assignment_statement>: beg_match len<3> [PARSER] SEQ<variableDeclaration>: beg_match len<2> [PARSER] 1OF<>: NO-MATCH [PARSER] SEQ<variableDeclaration> : match_item<oneOf> iter<0/2> st<10> end<20> NO-MATCH [PARSER] SEQ<variableReference>: beg_match len<1> [PARSER] MATCHED tok<b> mname<kw_or_id> [PARSER] SEQ<variableReference> : match_item<kw_or_id> iter<0/1> st<10> end<20> MATCH [PARSER] MATCHED SEQ<variableReference> [PARSER] 1OF<ass1of>: MATCH sub_matcher<variableReference> [PARSER] SEQ<assignment_statement> : match_item<ass1of> iter<0/3> st<10> end<20> MATCH [PARSER] MATCHED tok<=> mname<equals> [PARSER] SEQ<assignment_statement> : match_item<equals> iter<1/3> st<11> end<20> MATCH [PARSER] SEQ<expression>: beg_match len<1> [PARSER] SEQ<add1>: beg_match len<3> [PARSER] SEQ<mul1>: beg_match len<2> [PARSER] SEQ<variableReference>: beg_match len<1> [PARSER] SEQ<variableReference> : match_item<kw_or_id> iter<0/1> st<12> end<20> NO-MATCH [PARSER] SEQ<term>: beg_match len<3> [PARSER] MATCHED tok<(> mname<lparen> [PARSER] SEQ<term> : match_item<lparen> iter<0/3> st<12> end<20> MATCH [PARSER] SEQ<expression>: beg_match len<1> [PARSER] SEQ<add1>: beg_match len<3> [PARSER] SEQ<mul1>: beg_match len<2> [PARSER] SEQ<variableReference>: beg_match len<1> [PARSER] MATCHED tok<a> mname<kw_or_id> [PARSER] SEQ<variableReference> : match_item<kw_or_id> iter<0/1> st<13> end<20> MATCH [PARSER] MATCHED SEQ<variableReference> [PARSER] 1OF<primary>: MATCH sub_matcher<variableReference> [PARSER] SEQ<mul1> : match_item<primary> iter<0/2> st<13> end<20> MATCH [PARSER] NOM0<mul1zom>: beg_match sub_matcher<mul1sp> [PARSER] SEQ<mul1sp>: beg_match len<2> [PARSER] SEQ<mul1sp> : match_item<star> iter<0/2> st<14> end<20> NO-MATCH [PARSER] NOM0<mul1zom> try_match iter<0> NO-MATCH [PARSER] NOM0<mul1zom>: MATCH count<0> st<18446744073709551615> en<18446744073709551615> [PARSER] MATCHED NOM<mul1zom> [PARSER] SEQ<mul1> : match_item<mul1zom> iter<1/2> st<14> end<20> MATCH: EMPTY [PARSER] MATCHED SEQ<mul1> [PARSER] 1OF<multiplicative>: MATCH sub_matcher<mul1> [PARSER] SEQ<add1> : match_item<multiplicative> iter<0/3> st<13> end<20> MATCH [PARSER] MATCHED tok<+> mname<plus> [PARSER] SEQ<add1> : match_item<plus> iter<1/3> st<14> end<20> MATCH [PARSER] SEQ<mul1>: beg_match len<2> [PARSER] SEQ<variableReference>: beg_match len<1> [PARSER] MATCHED tok<v> mname<kw_or_id> [PARSER] SEQ<variableReference> : match_item<kw_or_id> iter<0/1> st<15> end<20> MATCH [PARSER] MATCHED SEQ<variableReference> [PARSER] 1OF<primary>: MATCH sub_matcher<variableReference> [PARSER] SEQ<mul1> : match_item<primary> iter<0/2> st<15> end<20> MATCH [PARSER] NOM0<mul1zom>: beg_match sub_matcher<mul1sp> [PARSER] SEQ<mul1sp>: beg_match len<2> [PARSER] SEQ<mul1sp> : match_item<star> iter<0/2> st<16> end<20> NO-MATCH [PARSER] NOM0<mul1zom> try_match iter<0> NO-MATCH [PARSER] NOM0<mul1zom>: MATCH count<0> st<18446744073709551615> en<18446744073709551615> [PARSER] MATCHED NOM<mul1zom> [PARSER] SEQ<mul1> : match_item<mul1zom> iter<1/2> st<16> end<20> MATCH: EMPTY [PARSER] MATCHED SEQ<mul1> [PARSER] 1OF<multiplicative>: MATCH sub_matcher<mul1> [PARSER] SEQ<add1> : match_item<multiplicative> iter<2/3> st<15> end<20> MATCH [PARSER] MATCHED SEQ<add1> [PARSER] 1OF<additive>: MATCH sub_matcher<add1> [PARSER] SEQ<expression> : match_item<additive> iter<0/1> st<13> end<20> MATCH [PARSER] MATCHED SEQ<expression> [PARSER] SEQ<term> : match_item<expression> iter<1/3> st<13> end<20> MATCH [PARSER] MATCHED tok<)> mname<rparen> [PARSER] SEQ<term> : match_item<rparen> iter<2/3> st<16> end<20> MATCH [PARSER] MATCHED SEQ<term> [PARSER] 1OF<primary>: MATCH sub_matcher<term> [PARSER] SEQ<mul1> : match_item<primary> iter<0/2> st<12> end<20> MATCH [PARSER] NOM0<mul1zom>: beg_match sub_matcher<mul1sp> [PARSER] SEQ<mul1sp>: beg_match len<2> [PARSER] MATCHED tok<*> mname<star> [PARSER] SEQ<mul1sp> : match_item<star> iter<0/2> st<17> end<20> MATCH [PARSER] MATCHED tok<7.0> mname<float> [PARSER] 1OF<primary>: MATCH sub_matcher<float> [PARSER] SEQ<mul1sp> : match_item<primary> iter<1/2> st<18> end<20> MATCH [PARSER] MATCHED SEQ<mul1sp> [PARSER] NOM0<mul1zom> try_match iter<0> MATCH start<17> end<18> [PARSER] SEQ<mul1sp>: beg_match len<2> [PARSER] SEQ<mul1sp> : match_item<star> iter<0/2> st<19> end<20> NO-MATCH [PARSER] NOM0<mul1zom> try_match iter<1> NO-MATCH [PARSER] NOM0<mul1zom>: MATCH count<1> st<17> en<18> [PARSER] MATCHED NOM<mul1zom> [PARSER] SEQ<mul1> : match_item<mul1zom> iter<1/2> st<17> end<20> MATCH [PARSER] MATCHED SEQ<mul1> [PARSER] 1OF<multiplicative>: MATCH sub_matcher<mul1> [PARSER] SEQ<add1> : match_item<multiplicative> iter<0/3> st<12> end<20> MATCH [PARSER] SEQ<add1> : match_item<plus> iter<1/3> st<19> end<20> NO-MATCH [PARSER] SEQ<add2>: beg_match len<3> [PARSER] SEQ<mul1>: beg_match len<2> [PARSER] SEQ<variableReference>: beg_match len<1> [PARSER] SEQ<variableReference> : match_item<kw_or_id> iter<0/1> st<12> end<20> NO-MATCH [PARSER] SEQ<term>: beg_match len<3> [PARSER] MATCHED tok<(> mname<lparen> [PARSER] SEQ<term> : match_item<lparen> iter<0/3> st<12> end<20> MATCH [PARSER] SEQ<expression>: beg_match len<1> [PARSER] SEQ<add1>: beg_match len<3> [PARSER] SEQ<mul1>: beg_match len<2> [PARSER] SEQ<variableReference>: beg_match len<1> [PARSER] MATCHED tok<a> mname<kw_or_id> [PARSER] SEQ<variableReference> : match_item<kw_or_id> iter<0/1> st<13> end<20> MATCH [PARSER] MATCHED SEQ<variableReference> [PARSER] 1OF<primary>: MATCH sub_matcher<variableReference> [PARSER] SEQ<mul1> : match_item<primary> iter<0/2> st<13> end<20> MATCH [PARSER] NOM0<mul1zom>: beg_match sub_matcher<mul1sp> [PARSER] SEQ<mul1sp>: beg_match len<2> [PARSER] SEQ<mul1sp> : match_item<star> iter<0/2> st<14> end<20> NO-MATCH [PARSER] NOM0<mul1zom> try_match iter<0> NO-MATCH [PARSER] NOM0<mul1zom>: MATCH count<0> st<18446744073709551615> en<18446744073709551615> [PARSER] MATCHED NOM<mul1zom> [PARSER] SEQ<mul1> : match_item<mul1zom> iter<1/2> st<14> end<20> MATCH: EMPTY [PARSER] MATCHED SEQ<mul1> [PARSER] 1OF<multiplicative>: MATCH sub_matcher<mul1> [PARSER] SEQ<add1> : match_item<multiplicative> iter<0/3> st<13> end<20> MATCH [PARSER] MATCHED tok<+> mname<plus> [PARSER] SEQ<add1> : match_item<plus> iter<1/3> st<14> end<20> MATCH [PARSER] SEQ<mul1>: beg_match len<2> [PARSER] SEQ<variableReference>: beg_match len<1> [PARSER] MATCHED tok<v> mname<kw_or_id> [PARSER] SEQ<variableReference> : match_item<kw_or_id> iter<0/1> st<15> end<20> MATCH [PARSER] MATCHED SEQ<variableReference> [PARSER] 1OF<primary>: MATCH sub_matcher<variableReference> [PARSER] SEQ<mul1> : match_item<primary> iter<0/2> st<15> end<20> MATCH [PARSER] NOM0<mul1zom>: beg_match sub_matcher<mul1sp> [PARSER] SEQ<mul1sp>: beg_match len<2> [PARSER] SEQ<mul1sp> : match_item<star> iter<0/2> st<16> end<20> NO-MATCH [PARSER] NOM0<mul1zom> try_match iter<0> NO-MATCH [PARSER] NOM0<mul1zom>: MATCH count<0> st<18446744073709551615> en<18446744073709551615> [PARSER] MATCHED NOM<mul1zom> [PARSER] SEQ<mul1> : match_item<mul1zom> iter<1/2> st<16> end<20> MATCH: EMPTY [PARSER] MATCHED SEQ<mul1> [PARSER] 1OF<multiplicative>: MATCH sub_matcher<mul1> [PARSER] SEQ<add1> : match_item<multiplicative> iter<2/3> st<15> end<20> MATCH [PARSER] MATCHED SEQ<add1> [PARSER] 1OF<additive>: MATCH sub_matcher<add1> [PARSER] SEQ<expression> : match_item<additive> iter<0/1> st<13> end<20> MATCH [PARSER] MATCHED SEQ<expression> [PARSER] SEQ<term> : match_item<expression> iter<1/3> st<13> end<20> MATCH [PARSER] MATCHED tok<)> mname<rparen> [PARSER] SEQ<term> : match_item<rparen> iter<2/3> st<16> end<20> MATCH [PARSER] MATCHED SEQ<term> [PARSER] 1OF<primary>: MATCH sub_matcher<term> [PARSER] SEQ<mul1> : match_item<primary> iter<0/2> st<12> end<20> MATCH [PARSER] NOM0<mul1zom>: beg_match sub_matcher<mul1sp> [PARSER] SEQ<mul1sp>: beg_match len<2> [PARSER] MATCHED tok<*> mname<star> [PARSER] SEQ<mul1sp> : match_item<star> iter<0/2> st<17> end<20> MATCH [PARSER] MATCHED tok<7.0> mname<float> [PARSER] 1OF<primary>: MATCH sub_matcher<float> [PARSER] SEQ<mul1sp> : match_item<primary> iter<1/2> st<18> end<20> MATCH [PARSER] MATCHED SEQ<mul1sp> [PARSER] NOM0<mul1zom> try_match iter<0> MATCH start<17> end<18> [PARSER] SEQ<mul1sp>: beg_match len<2> [PARSER] SEQ<mul1sp> : match_item<star> iter<0/2> st<19> end<20> NO-MATCH [PARSER] NOM0<mul1zom> try_match iter<1> NO-MATCH [PARSER] NOM0<mul1zom>: MATCH count<1> st<17> en<18> [PARSER] MATCHED NOM<mul1zom> [PARSER] SEQ<mul1> : match_item<mul1zom> iter<1/2> st<17> end<20> MATCH [PARSER] MATCHED SEQ<mul1> [PARSER] 1OF<multiplicative>: MATCH sub_matcher<mul1> [PARSER] SEQ<add2> : match_item<multiplicative> iter<0/3> st<12> end<20> MATCH [PARSER] SEQ<add2> : match_item<minus> iter<1/3> st<19> end<20> NO-MATCH [PARSER] SEQ<mul1>: beg_match len<2> [PARSER] SEQ<variableReference>: beg_match len<1> [PARSER] SEQ<variableReference> : match_item<kw_or_id> iter<0/1> st<12> end<20> NO-MATCH [PARSER] SEQ<term>: beg_match len<3> [PARSER] MATCHED tok<(> mname<lparen> [PARSER] SEQ<term> : match_item<lparen> iter<0/3> st<12> end<20> MATCH [PARSER] SEQ<expression>: beg_match len<1> [PARSER] SEQ<add1>: beg_match len<3> [PARSER] SEQ<mul1>: beg_match len<2> [PARSER] SEQ<variableReference>: beg_match len<1> [PARSER] MATCHED tok<a> mname<kw_or_id> [PARSER] SEQ<variableReference> : match_item<kw_or_id> iter<0/1> st<13> end<20> MATCH [PARSER] MATCHED SEQ<variableReference> [PARSER] 1OF<primary>: MATCH sub_matcher<variableReference> [PARSER] SEQ<mul1> : match_item<primary> iter<0/2> st<13> end<20> MATCH [PARSER] NOM0<mul1zom>: beg_match sub_matcher<mul1sp> [PARSER] SEQ<mul1sp>: beg_match len<2> [PARSER] SEQ<mul1sp> : match_item<star> iter<0/2> st<14> end<20> NO-MATCH [PARSER] NOM0<mul1zom> try_match iter<0> NO-MATCH [PARSER] NOM0<mul1zom>: MATCH count<0> st<18446744073709551615> en<18446744073709551615> [PARSER] MATCHED NOM<mul1zom> [PARSER] SEQ<mul1> : match_item<mul1zom> iter<1/2> st<14> end<20> MATCH: EMPTY [PARSER] MATCHED SEQ<mul1> [PARSER] 1OF<multiplicative>: MATCH sub_matcher<mul1> [PARSER] SEQ<add1> : match_item<multiplicative> iter<0/3> st<13> end<20> MATCH [PARSER] MATCHED tok<+> mname<plus> [PARSER] SEQ<add1> : match_item<plus> iter<1/3> st<14> end<20> MATCH [PARSER] SEQ<mul1>: beg_match len<2> [PARSER] SEQ<variableReference>: beg_match len<1> [PARSER] MATCHED tok<v> mname<kw_or_id> [PARSER] SEQ<variableReference> : match_item<kw_or_id> iter<0/1> st<15> end<20> MATCH [PARSER] MATCHED SEQ<variableReference> [PARSER] 1OF<primary>: MATCH sub_matcher<variableReference> [PARSER] SEQ<mul1> : match_item<primary> iter<0/2> st<15> end<20> MATCH [PARSER] NOM0<mul1zom>: beg_match sub_matcher<mul1sp> [PARSER] SEQ<mul1sp>: beg_match len<2> [PARSER] SEQ<mul1sp> : match_item<star> iter<0/2> st<16> end<20> NO-MATCH [PARSER] NOM0<mul1zom> try_match iter<0> NO-MATCH [PARSER] NOM0<mul1zom>: MATCH count<0> st<18446744073709551615> en<18446744073709551615> [PARSER] MATCHED NOM<mul1zom> [PARSER] SEQ<mul1> : match_item<mul1zom> iter<1/2> st<16> end<20> MATCH: EMPTY [PARSER] MATCHED SEQ<mul1> [PARSER] 1OF<multiplicative>: MATCH sub_matcher<mul1> [PARSER] SEQ<add1> : match_item<multiplicative> iter<2/3> st<15> end<20> MATCH [PARSER] MATCHED SEQ<add1> [PARSER] 1OF<additive>: MATCH sub_matcher<add1> [PARSER] SEQ<expression> : match_item<additive> iter<0/1> st<13> end<20> MATCH [PARSER] MATCHED SEQ<expression> [PARSER] SEQ<term> : match_item<expression> iter<1/3> st<13> end<20> MATCH [PARSER] MATCHED tok<)> mname<rparen> [PARSER] SEQ<term> : match_item<rparen> iter<2/3> st<16> end<20> MATCH [PARSER] MATCHED SEQ<term> [PARSER] 1OF<primary>: MATCH sub_matcher<term> [PARSER] SEQ<mul1> : match_item<primary> iter<0/2> st<12> end<20> MATCH [PARSER] NOM0<mul1zom>: beg_match sub_matcher<mul1sp> [PARSER] SEQ<mul1sp>: beg_match len<2> [PARSER] MATCHED tok<*> mname<star> [PARSER] SEQ<mul1sp> : match_item<star> iter<0/2> st<17> end<20> MATCH [PARSER] MATCHED tok<7.0> mname<float> [PARSER] 1OF<primary>: MATCH sub_matcher<float> [PARSER] SEQ<mul1sp> : match_item<primary> iter<1/2> st<18> end<20> MATCH [PARSER] MATCHED SEQ<mul1sp> [PARSER] NOM0<mul1zom> try_match iter<0> MATCH start<17> end<18> [PARSER] SEQ<mul1sp>: beg_match len<2> [PARSER] SEQ<mul1sp> : match_item<star> iter<0/2> st<19> end<20> NO-MATCH [PARSER] NOM0<mul1zom> try_match iter<1> NO-MATCH [PARSER] NOM0<mul1zom>: MATCH count<1> st<17> en<18> [PARSER] MATCHED NOM<mul1zom> [PARSER] SEQ<mul1> : match_item<mul1zom> iter<1/2> st<17> end<20> MATCH [PARSER] MATCHED SEQ<mul1> [PARSER] 1OF<multiplicative>: MATCH sub_matcher<mul1> [PARSER] 1OF<additive>: MATCH sub_matcher<multiplicative> [PARSER] SEQ<expression> : match_item<additive> iter<0/1> st<12> end<20> MATCH [PARSER] MATCHED SEQ<expression> [PARSER] SEQ<assignment_statement> : match_item<expression> iter<2/3> st<12> end<20> MATCH [PARSER] MATCHED SEQ<assignment_statement> [PARSER] OPT<st1> MATCH sub<assignment_statement> [PARSER] MATCHED OPT<st1> [PARSER] SEQ<sequence> : match_item<st1> iter<0/2> st<10> end<20> MATCH [PARSER] MATCHED tok<;> mname<semicolon> [PARSER] SEQ<sequence> : match_item<semicolon> iter<1/2> st<19> end<20> MATCH [PARSER] MATCHED SEQ<sequence> [PARSER] NOM0<fnd_statements> try_match iter<0> MATCH start<10> end<19> [PARSER] SEQ<sequence>: beg_match len<2> [PARSER] SEQ<assignment_statement>: beg_match len<3> [PARSER] SEQ<variableDeclaration>: beg_match len<2> [PARSER] 1OF<>: NO-MATCH [PARSER] SEQ<variableDeclaration> : match_item<oneOf> iter<0/2> st<20> end<20> NO-MATCH [PARSER] SEQ<variableReference>: beg_match len<1> [PARSER] SEQ<variableReference> : match_item<kw_or_id> iter<0/1> st<20> end<20> NO-MATCH [PARSER] 1OF<ass1of>: NO-MATCH [PARSER] SEQ<assignment_statement> : match_item<ass1of> iter<0/3> st<20> end<20> NO-MATCH [PARSER] OPT<st1> EMPTY [PARSER] MATCHED OPT<st1> [PARSER] SEQ<sequence> : match_item<st1> iter<0/2> st<20> end<20> MATCH: EMPTY [PARSER] SEQ<sequence> : match_item<semicolon> iter<1/2> st<20> end<20> NO-MATCH [PARSER] NOM0<fnd_statements> try_match iter<1> NO-MATCH [PARSER] NOM0<fnd_statements>: MATCH count<1> st<10> en<19> [PARSER] MATCHED NOM<fnd_statements> [PARSER] SEQ<funcdef> : match_item<fnd_statements> iter<6/8> st<10> end<20> MATCH [PARSER] MATCHED tok<}> mname<rcurly> [PARSER] SEQ<funcdef> : match_item<rcurly> iter<7/8> st<20> end<20> MATCH MATCHED sequence<funcdef> ScannerLightView<0x7fd2e801cdc0>::Dump(id:seq) _start<0> _end<20> tok<0> val<function> tok<1> val<abc> tok<2> val<(> tok<3> val<int> tok<4> val<x> tok<5> val<,> tok<6> val<float> tok<7> val<y> tok<8> val<)> tok<9> val<{> tok<10> val<b> tok<11> val<=> tok<12> val<(> tok<13> val<a> tok<14> val<+> tok<15> val<v> tok<16> val<)> tok<17> val<*> tok<18> val<7.0> tok<19> val<;> tok<20> val<}> DUMP Match<0x7fd2e8016d20> matcher<0x7fd2e801da60:funcdef> view [0..20] SEQ<0x7fd2e8023b00> DUMP Match<0x7fd2e801dcc0> matcher<0x7fd2e801b2c0:function> view [0..0] DUMP Match<0x7fd2e8022250> matcher<0x7fd2e801adf0:kw_or_id> view [1..1] DUMP Match<0x7fd2e8016a50> matcher<0x7fd2e80194f0:lparen> view [2..2] DUMP Match<0x7fd2e8022870> matcher<0x7fd2e801d960:fnd_args> view [3..7] NOM0<0x7fd2e8022ff0> DUMP Match<0x7fd2e8015f30> matcher<0x7fd2e8019ad0:argument_decl> view [3..5] SEQ<0x7fd2e80169c0> DUMP Match<0x7fd2e801f1c0> matcher<0x7fd2e801de60:int> view [3..3] DUMP Match<0x7fd2e801f100> matcher<0x7fd2e801adf0:kw_or_id> view [4..4] DUMP Match<0x7fd2e8021a30> matcher<0x7fd2e8023cb0:optional> view [5..5] OPT<0x7fd2e8023a60> DUMP Match<0x7fd2e801c360> matcher<0x7fd2e80190c0:comma> view [5..5] DUMP Match<0x7fd2e8012900> matcher<0x7fd2e8019ad0:argument_decl> view [6..7] SEQ<0x7fd2e8023510> DUMP Match<0x7fd2e801c5f0> matcher<0x7fd2e801cd10:float> view [6..6] DUMP Match<0x7fd2e80213c0> matcher<0x7fd2e801adf0:kw_or_id> view [7..7] DUMP Match<0x7fd2e8023880> matcher<0x7fd2e8023cb0:optional> view (empty) OPT<0x7fd2e8021440> EMPTY DUMP Match<0x7fd2e8023780> matcher<0x7fd2e8019900:rparen> view [8..8] DUMP Match<0x7fd2e8022930> matcher<0x7fd2e8019d30:lcurly> view [9..9] DUMP Match<0x7fd2e801b1f0> matcher<0x7fd2e801d9e0:fnd_statements> view [10..19] NOM0<0x7fd2e8023800> DUMP Match<0x7fd2e801ad20> matcher<0x7fd2e801d8e0:sequence> view [10..19] SEQ<0x7fd2e801df60> DUMP Match<0x7fd2e8015ba0> matcher<0x7fd2e801d860:st1> view [10..18] OPT<0x7fd2e80229b0> DUMP Match<0x7fd2e801d1c0> matcher<0x7fd2e801d7e0:assignment_statement> view [10..18] SEQ<0x7fd2e8015c20> DUMP Match<0x7fd2e801cb20> matcher<0x7fd2e801e340:variableReference> view [10..10] SEQ<0x7fd2e801dda0> DUMP Match<0x7fd2e801a9a0> matcher<0x7fd2e801adf0:kw_or_id> view [10..10] DUMP Match<0x7fd2e801fc30> matcher<0x7fd2e80130a0:equals> view [11..11] DUMP Match<0x7fd2e8022740> matcher<0x7fd2e801e3c0:expression> view [12..18] SEQ<0x7fd2e80227f0> DUMP Match<0x7fd2e8019580> matcher<0x7fd2e801e640:mul1> view [12..18] SEQ<0x7fd2e8023600> DUMP Match<0x7fd2e801a760> matcher<0x7fd2e801e440:term> view [12..16] SEQ<0x7fd2e8018c80> DUMP Match<0x7fd2e801a510> matcher<0x7fd2e80194f0:lparen> view [12..12] DUMP Match<0x7fd2e801fd50> matcher<0x7fd2e801e3c0:expression> view [13..15] SEQ<0x7fd2e801c200> DUMP Match<0x7fd2e8018bd0> matcher<0x7fd2e801d400:add1> view [13..15] SEQ<0x7fd2e801cc30> DUMP Match<0x7fd2e8023580> matcher<0x7fd2e801e640:mul1> view [13..13] SEQ<0x7fd2e8023630> DUMP Match<0x7fd2e8019150> matcher<0x7fd2e801e340:variableReference> view [13..13] SEQ<0x7fd2e8019600> DUMP Match<0x7fd2e8016080> matcher<0x7fd2e801adf0:kw_or_id> view [13..13] DUMP Match<0x7fd2e801c7b0> matcher<0x7fd2e801e5c0:mul1zom> view (empty) NOM0<0x7fd2e8023900> DUMP Match<0x7fd2e8021ae0> matcher<0x7fd2e80196c0:plus> view [14..14] DUMP Match<0x7fd2e801dae0> matcher<0x7fd2e801e640:mul1> view [15..15] SEQ<0x7fd2e8019200> DUMP Match<0x7fd2e8021b60> matcher<0x7fd2e801e340:variableReference> view [15..15] SEQ<0x7fd2e801ca60> DUMP Match<0x7fd2e801a6e0> matcher<0x7fd2e801adf0:kw_or_id> view [15..15] DUMP Match<0x7fd2e801b350> matcher<0x7fd2e801e5c0:mul1zom> view (empty) NOM0<0x7fd2e801a5c0> DUMP Match<0x7fd2e8016100> matcher<0x7fd2e8019900:rparen> view [16..16] DUMP Match<0x7fd2e801c4c0> matcher<0x7fd2e801e5c0:mul1zom> view [17..18] NOM0<0x7fd2e8015950> DUMP Match<0x7fd2e80197c0> matcher<0x7fd2e801e540:mul1sp> view [17..18] SEQ<0x7fd2e801db90> DUMP Match<0x7fd2e8019e40> matcher<0x7fd2e801b490:star> view [17..17] DUMP Match<0x7fd2e8019a10> matcher<0x7fd2e801a650:float> view [18..18] DUMP Match<0x7fd2e8019dc0> matcher<0x7fd2e8018cf0:semicolon> view [19..19] DUMP Match<0x7fd2e801a040> matcher<0x7fd2e801a180:rcurly> view [20..20] |
The PEG based shader frontend is complete enough (as of commit 1968bef) to begin Vulkan and Metal. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
And use the AST for final shader emission instead of string based emission.
This will encourage cooler shader tricks down the road - eg node based shaders...
Use unit tests to verify completion
The text was updated successfully, but these errors were encountered: