JavaScript Plugin questions
Hi,
Can you provide more details on lexer generation such us all config files and command lines.
Even using flex and skeleton files generated with JFlex 1.4.1 class doesn't compile (Am I miss something?)
JFlex is really strange tool and plugin authors better can spend their time to develop plugins not to dig with such tools :)
TIA,
Dmitry
请先登录再写评论。
Dmitry,
attached is a skeleton file we used for lex
-
Maxim Shafirov
http://www.jetbrains.com
"Develop with pleasure!"
begin 777 idea-skeleton
M("`O*BH@:6YI=&EA;"!S:7IE(&]F('1H92!L;V]K86AE860@8G5F9F5R("HO
M"BTM+2!P<FEV871E('-T871I8R!F:6YA;"!I;G0@6EI?0E5&1D524TE:12`]
M("XNCL*"B`@RHJ(&QE>&EC86P@<W1A=&5S("HO"BTM+2`@;&5X:6-A;"!S
M=&%T97,L(&-H87)M87`"B`@+RH@97)R;W(@8V]D97,@B\*("!P<FEV871E
M('-T871I8R!F:6YA;"!I;G0@6EI?54Y+3D]73E]%4E)/4B`](#`["B`@<')I
M=F%T92!S=&%T:6,@9FEN86P@:6YT(%I:7TY/7TU!5$-((#T@,3L*("!P<FEV
M871E('-T871I8R!F:6YA;"!I;G0@6EI?4%532$)!0TM?,D))1R`](#(["B`@
M<')I=F%T92!S=&%T:6,@9FEN86P@8VAA<EM=($5-4%197T)51D9%4B`](&YE
M=R!C:&%R6S!=.PH@('!R:79A=&4@<W1A=&EC(&9I;F%L(&EN="!9645/1B`]
M("TQ.PH("`OB!E<G)O<B!M97-S86=E<R!F;W(@=&AE(&-O9&5S(&%B;W9E
M("HO"B`@<')I=F%T92!S=&%T:6,@9FEN86P@4W1R:6YG(%I:7T524D]27TU3
M1UM=(#T@>PH@("`@(E5N:V]W;B!I;G1E<FYA;"!S8V%N;F5R(&5R<F]R(BP*
M("`@(")%<G)O<CH@8V]U;&0@;F]T(&UA=&-H(&EN<'5T(BP*("`@(")%<G)O
M<CH@<'5S:&)A8VL@=F%L=64@=V%S('1O;R!L87)G92(("!].PH+2TM(&ES
M1FEN86P@;&ES=`H@("\J*B!T:&4@8W5R<F5N="!S=&%T92!O9B!T:&4@1$9!
M("HO"B`@<')I=F%T92!I;G0@>GI3=&%T93L*"B`@+RHJ('1H92!C=7)R96YT
M(&QE>&EC86P@<W1A=&4@B\("!P<FEV871E(&EN="!Z>DQE>&EC86Q3=&%T
M92`](%E924Y)5$E!3#L*"B`@+RHJ('1H:7,@8G5F9F5R(&-O;G1A:6YS('1H
M92!C=7)R96YT('1E>'0@=&\@8F4@;6%T8VAE9"!A;F0@:7,*("`@("`@=&AE
M('-O=7)C92!O9B!T:&4@>7ET97AT*"D@<W1R:6YG("HO"B`@<')I=F%T92!C
M:&%R('IZ0G5F9F5R6UT@/2!%35!465]"549&15(["@H@("\J*B!T:&4@=&5X
M='!O<VET:6]N(&%T('1H92!L87-T(&%C8V5P=&EN9R!S=&%T92`J+PH@('!R
M:79A=&4@:6YT('IZ36%R:V5D4&]S.PH("`OBH@=&AE('1E>'1P;W-I=&EO
M;B!A="!T:&4@;&%S="!S=&%T92!T;R!B92!I;F-L=61E9"!I;B!Y>71E>'0@
MB\("!P<FEV871E(&EN="!Z>E!U<VAB86-K4&]S.PH("`OBH@=&AE(&-U
M<G)E;G0@=&5X="!P;W-I=&EO;B!I;B!T:&4@8G5F9F5R("HO"B`@<')I=F%T
M92!I;G0@>GI#=7)R96YT4&]S.PH("`OBH@<W1A<G1296%D(&UA<FMS('1H
M92!B96=I;FYI;F<@;V8@=&AE('EY=&5X="@I('-T<FEN9R!I;B!T:&4@8G5F
M9F5R("HO"B`@<')I=F%T92!I;G0@>GI3=&%R=%)E860["@H@("\J*B!E;F12
M96%D(&UA<FMS('1H92!L87-T(&-H87)A8W1E<B!I;B!T:&4@8G5F9F5R+"!T
M:&%T(&AA<R!B965N(')E860*("`@("`@9G)O;2!I;G!U="`J+PH@('!R:79A
M=&4@:6YT('IZ16YD4F5A9#L*"B`@+RHJ"B`@("H@>GI!=$)/3"`]/2!T<G5E
M(#P]/B!T:&4@<V-A;FYE<B!I<R!C=7)R96YT;'D@870@=&AE(&)E9VEN;FEN
M9R!O9B!A(&QI;F4("`@B\*("!P<FEV871E(&)O;VQE86X@>GI!=$)/3"`]
M('1R=64["@H@("\J*B!Z>D%T14]&(#T]('1R=64@/#T^('1H92!S8V%N;F5R
M(&ES(&%T('1H92!%3T8@B\("!P<FEV871E(&)O;VQE86X@>GI!=$5/1CL*
M"BTM2!U<V5R(&-L87-S(&-O9&4*"B`@RHJ"B`@("H@0W)E871E<R!A(&YE
M=R!S8V%N;F5R"B`@("H@5&AE<F4@:7,@86QS;R!A(&IA=F$N:6\N26YP=713
M=')E86T@=F5R<VEO;B!O9B!T:&ES(&-O;G-T<G5C=&]R+@H@("`J"B`@("H@
M0'!A<F%M("`@:6X@('1H92!J879AFEOE)E861E<B!T;R!R96%D(&EN<'5T
M(&9R;VTN"B`@("HO"BTM+2!C;VYS=')U8W1O<B!D96-L87)A=&EO;@H*"B`@
MRHJ"B`@("H@4F5F:6QL<R!T:&4@:6YP=70@8G5F9F5R@H@("`J"B`@("H@
M0')E='5R;B`@("`@(#QC;V1E/F9A;'-E/"]C;V1E/BP@:69F('1H97)E('=A
M<R!N97<@:6YP=70N"B`@("H@"B`@("H@0&5X8V5P=&EO;B`@(&IA=F$N:6\N
M24]%>&-E<'1I;VX@(&EF(&%N>2!)+T\M17)R;W(@;V-C=7)S"B`@("HO"B`@
M<')I=F%T92!B;V]L96%N('IZ4F5F:6QL*"D@=&AR;W=S(&IA=F$N:6\N24]%
M>&-E<'1I;VX@>PH@("`@<F5T=7)N('1R=64["B`@?0H("`@(`H@("\J@H@
M("`J($-L;W-E<R!T:&4@:6YP=70@<W1R96%M@H@("`JPH@('!U8FQI8R!F
M:6YA;"!V;VED('EY8VQO<V4H*2!T:')O=W,@:F%V82YI;RY)3T5X8V5P=&EO
M;B!["B`@("!Z>D%T14]&(#T@=')U93L@("`@("`@("`@("`O*B!I;F1I8V%T
M92!E;F0@;V8@9FEL92`J+PH@("`@>GI%;F1296%D(#T@>GI3=&%R=%)E860[
M("`OB!I;G9A;&ED871E(&)U9F9E<B`@("`J+PH@('T"@H@("\J*@H@("`J
M(%)E<V5T<R!T:&4@<V-A;FYE<B!T;R!R96%D(&9R;VT@82!N97<@:6YP=70@
M<W1R96%M@H@("`J($1O97,@;F]T(&-L;W-E('1H92!O;&0@<F5A9&5R@H@
M("`J"B`@("H@06QL(&EN=&5R;F%L('9A<FEA8FQE<R!A<F4@<F5S970L('1H
M92!O;&0@:6YP=70@<W1R96%M(`H@("`J(#QB/F-A;FYO=#PO8CX@8F4@<F5U
M<V5D("AI;G1E<FYA;"!B=69F97(@:7,@9&ES8V%R9&5D(&%N9"!L;W-T2X
M("`@*B!,97AI8V%L('-T871E(&ES('-E="!T;R`\='0^6EI?24Y)5$E!3#PO
M='0^+@H@("`J"B`@("H@0'!A<F%M(')E861E<B`@('1H92!N97<@:6YP=70@
M<W1R96%M(`H@("`J+PH@('!U8FQI8R!F:6YA;"!V;VED('EY<F5S970H:F%V
M82YI;RY296%D97(@<F5A9&5R*2!["B`@("!Z>D%T0D],("`]('1R=64["B`@
M("!Z>D%T14]&("`](&9A;'-E.PH@("`@>GI%;F1296%D(#T@>GI3=&%R=%)E
M860@/2`P.PH@("`@>GI#=7)R96YT4&]S(#T@>GI-87)K9610;W,@/2!Z>E!U
M<VAB86-K4&]S(#T@,#L*("`@('IZ3&5X:6-A;%-T871E(#T@65E)3DE424%,
M.PH@('T"@H@("\J@H@("`J(%)E='5R;G,@=&AE(&-U<G)E;G0@;&5X:6-A
M;"!S=&%T92X("`@B\*("!P=6)L:6,@9FEN86P@:6YT('EY<W1A=&4H*2![
M"B`@("!R971U<FX@>GI,97AI8V%L4W1A=&4["B`@?0H*"B`@+RHJ"B`@("H@
M16YT97)S(&$@;F5W(&QE>&EC86P@<W1A=&4("`@@H@("`J($!P87)A;2!N
M97=3=&%T92!T:&4@;F5W(&QE>&EC86P@<W1A=&4("`@B\*("!P=6)L:6,@
M9FEN86P@=F]I9"!Y>6)E9VEN*&EN="!N97=3=&%T92D@>PH@("`@>GI,97AI
M8V%L4W1A=&4@/2!N97=3=&%T93L("!]"@H("`OBH("`@*B!2971U]]>'!R
M97-S:6]N@H@("`JPH@('!U8FQI8R!F:6YA;"!3=')I;F<@>7ET97AT*"D@
M>PH@("`@<F5T=7)N(&YE=R!3=')I;F<H('IZ0G5F9F5R+"!Z>E-T87)T4F5A
M9"P@>GI-87)K9610;W,M>GI3=&%R=%)E860@3L("!]"@H("`OBH*("`@
M*B!2971U71E>]]>'0H2YC:&%R070H<&]S2P@8G5T
M(&9A<W1E<@H@("`J"B`@("H@0'!A<F%M('!O<R!T:&4@<&]S:71I;VX@;V8@
M=&AE(&-H87)A8W1E<B!T;R!F971C:"X@"B`@("H@("`@("`@("`@("!!('9A
M;'5E(&9R;VT@,"!T;R!Y>6QE;F=T:"@I+3$N"B`@("H("`@B!`<F5T=7)N
M('1H92!C:&%R86-T97(@870@<&]S:71I;VX@<&]S"B`@("HO"B`@<'5B;&EC
M(&9I;F%L(&-H87(@>7EC:&%R870H:6YT('!O<RD@>PH@("`@<F5T=7)N('IZ
M0G5F9F5R6WIZ4W1A<G1296%DW!O<UT["B`@?0H"B`@+RHJ"B`@("H@4F5T
M=7)N<R!T:&4@;&5N9W1H(&]F('1H92!M871C:&5D('1E>'0@<F5G:6]N+@H@
M("`J+PH@('!U8FQI8R!F:6YA;"!I;G0@>7EL96YG=&@H*2!["B`@("!R971U
M<FX@>GI-87)K9610;W,M>GI3=&%R=%)E860["B`@?0H*"B`@+RHJ"B`@("H@
M4F5P;W)T<R!A;B!E<G)O<B!T:&%T(&]C8W5R960@=VAI;&4@<V-A;FYI;F<N
M"B`@("H("`@B!);B!A('=E;&QF;W)M960@<V-A;FYE<B`H;F\@;W(@;VYL
M>2!C;W)R96-T('5S86=E(&]F(`H@("`J('EY<'5S:&)A8VLH:6YT*2!A;F0@
M82!M871C:"UA;&P@9F%L;&)A8VL@<G5L92D@=&AI<R!M971H;V0@"B`@("H@
M=VEL;"!O;FQY(&)E(&-A;&QE9"!W:71H('1H:6YG<R!T:&%T(")#86XG="!0
M;W-S:6)L>2!(87!P96XB+@H@("`J($EF('1H:7,@;65T:&]D(&ES(&-A;&QE
M9"P@<V]M971H:6YG(&ES('-E<FEO=7-L>2!W<F]N9PH@("`J("AE+F<N(&$@
M2D9L97@@8G5G('!R;V1U8VEN9R!A(&9A=6QT>2!S8V%N;F5R(&5T8RXI+@H@
M("`J"B`@("H@57-U86P@<WEN=&%X+W-C86YN97(@;&5V96P@97)R;W(@:&%N
M9&QI;F<@<VAO=6QD(&)E(&1O;F4("`@B!I;B!E<G)O<B!F86QL8F%C:R!R
M=6QE<RX("`@@H@("`J($!P87)A;2`@(&5R<F]R0V]D92`@=&AE(&-O9&4@
M;V8@=&AE(&5R<F]R;65S<V%G92!T;R!D:7-P;&%Y"B`@("HO"BTM+2!Z>E-C
M86Y%<G)O<B!D96-L87)A=&EO;@H@("`@4W1R:6YG(&UE<W-A9V4["B`@("!T
M<GD@>PH@("`@("!M97-S86=E(#T@6EI?15)23U)?35-'6V5R<F]R0V]D95T[
M"B`@("!]"B`@("!C871C:"`H07)R87E);F1E>$]U=$]F0F]U;F1S17AC97!T
M:6]N(&4I('L*("`@("`@;65S<V%G92`](%I:7T524D]27TU31UM:6E]53DM.
M3U=.7T524D]273L("`@('T"BTM+2!T:')O=W,@8VQA=7-E"B`@?2`*"@H@
M("\J*@H@("`J(%!U<VAE<R!T:&4@<W!E8VEF:65D(&%M;W5N="!O9B!C:&%R
M86-T97)S(&)A8VL@:6YT;R!T:&4@:6YP=70@<W1R96%M+@H@("`J"B`@("H@
M5&AE>2!W:6QL(&)E(')E860@86=A:6X@8GD@=&AE;B!N97AT(&-A;&P@;V8@
M=&AE('-C86YN:6YG(&UE=&AO9`H@("`J"B`@("H@0'!A<F%M(&YU;6)E<B`@
M=&AE(&YU;6)E<B!O9B!C:&%R86-T97)S('1O(&)E(')E860@86=A:6XN"B`@
M("H@("`@("`@("`@("`@("`@5&AI<R!N=6UB97(@;75S="!N;W0@8F4@9W)E
M871E<B!T:&%N('EY;&5N9W1H*"DA"B`@("HO"BTM+2!Y>7!U<VAB86-K(&1E
M8VP@&-O;G1A:6YS('IZ4V-A;D5R<F]R(&5X8V5P=&EO;BD("`@(&EF("@@
M;G5M8F5R(#X@>7EL96YG=&@H2`I"B`@("`@('IZ4V-A;D5R<F]R%I:7U!5
M4TA"04-+7S)"24<I.PH("`@('IZ36%R:V5D4&]S("T](&YU;6)E<CL("!]
M"@H+2TM('IZ1&]%3T8("`OBH("`@*B!297-U;65S('-C86YN:6YG('5N
M=&EL('1H92!N97AT(')E9W5L87(@97AP<F5S<VEO;B!I<R!M871C:&5D+`H@
M("`J('1H92!E;F0@;V8@:6YP=70@:7,@96YC;W5N=&5R960@;W(@86X@22]/
M+45R<F]R(&]C8W5R<RX("`@@H@("`J($!R971U<FX@("`@("!T:&4@;F5X
M="!T;VME;@H@("`J($!E>&-E<'1I;VX@("!J879AFEODE/17AC97!T:6]N
M("!I9B!A;GD@22]/45R<F]R(&]C8W5R<PH@("`JPHM+2T@>7EL97@@9&5C
M;&%R871I;VX("`@(&EN="!Z>DEN<'5T.PH@("`@:6YT('IZ06-T:6]N.PH
M("`@("\O(&-A8VAE9"!F:65L9',Z"B`@("!I;G0@>GI#=7)R96YT4&]S3#L*
M("`@(&EN="!Z>DUA<FME9%!O<TP["B`@("!I;G0@>GI%;F1296%D3"`]('IZ
M16YD4F5A9#L*("`@(&-H87(@6UT@>GI"=69F97),(#T@>GI"=69F97(["B`@
M("!C:&%R(%M=('IZ0TUA<$P@/2!:6E]#34%0.PH*+2TM(&QO8V%L(&1E8VQA
M<F%T:6]N<PH("`@('=H:6QE("AT<G5E2!["B`@("`@('IZ36%R:V5D4&]S
M3"`]('IZ36%R:V5D4&]S.PH*2TM('-T87)T(&%D;6EN("AL:6YE"!C:&%R
M"!C;VP@8V]U;G0I"B`@("`@('IZ06-T:6]N(#T@3$["@H@("`@("!Z>D-U
M<G)E;G10;W-,(#T@>GI#=7)R96YT4&]S(#T@>GI3=&%R=%)E860@/2!Z>DUA
M<FME9%!O<TP["B`@"BTM+2!S=&%R="!A9&UI;B`H;&5X<W1A=&4@971C0H
M("`@("`@>GI&;W)!8W1I;VXZ('L*("`@("`@("!W:&EL92`H=')U92D@>PH@
M("`@"BTM2!N97AT(&EN<'5T"!L:6YE+"!C;VPL(&-H87(@8V]U;G0L(&YE
M>'0@=')A;G-I=&EO;BP@:7-&:6YA;"!A8W1I;VX*("`@("`@("`@("`@>GI!
M8W1I;VX@/2!Z>E-T871E.PH@("`@("`@("`@("!Z>DUA<FME9%!O<TP@/2!Z
M>D-U<G)E;G10;W-,.PHM+2T@;&EN92!C;W5N="!U<&1A=&4*("`@("`@("`@
M('T*"B`@("`@("`@?0H@("`@("!]"@H@("`@("`O+R!S=&]R92!B86-K(&-A
M8VAE9"!P;W-I=&EO;@H@("`@("!Z>DUA<FME9%!O<R`]('IZ36%R:V5D4&]S
M3#L*2TM(&-H87(@8V]U;G0@=7!D871E"@HM2T@86-T:6]N<PH@("`@("`@
M(&1E9F%U;'0Z(`H@("`@("`@("`@:68@*'IZ26YP=70@/3T@65E%3T8@)B8@
M>GI3=&%R=%)E860@/3T@>GI#=7)R96YT4&]S*2!["B`@("`@("`@("`@('IZ
M071%3T8@/2!T<G5E.PHM+2T@96]F=F%L=64*("`@("`@("`@('T@"B`@("`@
M("`@("!E;'-E('L+2TM(&YO(&UA=&-H"B`@("`@("`@("!]"B`@("`@('T
7("`@('T("!]"@HM+2T@;6%I;@H?0IH
`
end
Hi Maxim,
Is it same file that earlier was posted to forum?
I already try:
1. Download JFlex 1.4.1
2. Using ant task, JavaScript.flex(tuned a little, just change tokens class name) and attached skeleton generate .java for lexer.
Problems:
1. inside
void _*Token
appear return null
2. NPE during lexing file
TIA,
Dmitry
Dmitry,
would you please mail me faulty .java generated lexer? I'll look into.
-
Maxim Shafirov
http://www.jetbrains.com
"Develop with pleasure!"
Project sent _VelocityLexer.java is the problem lexer.
TIA,
Dmitry
I get invalid chars in attached skeleton...