Podrška #19469
Zatvoreneclipse harbour syntax highlight, xtext
Dodano od Ernad Husremović prije više od 15 godina. Izmjenjeno prije oko 15 godina.
0%
Fajlovi
Povezani tiketi 1 (0 otvoreno — 1 zatvoren)
Izmjenjeno od Ernad Husremović prije više od 15 godina
update site http://download.itemis.com/updates/releases/
Izmjenjeno od Ernad Husremović prije više od 15 godina
Eclipse Modeling Framework Technology
The Eclipse Modeling Framework Technology (EMFT) project exists to incubate new technologies that extend or complement EMF.
Izmjenjeno od Ernad Husremović prije više od 15 godina
EMFT Mint¶
The goal of Mint is to improve out-of-the-box Java developer experience when writing EMF-based software. This is accomplished by extending Java Development Tools (JDT) with EMF-specific enhancements. The initial contribution consists of filters and decorators for highlighting EMF-generated code, Java search integration, as well as editor enhancements for navigating from EMF models to generated Java code.
Izmjenjeno od Ernad Husremović prije više od 15 godina
Izmjenjeno od Ernad Husremović prije više od 15 godina
instalirao tmf xtext sdk na desk-c2
Izmjenjeno od Ernad Husremović prije više od 15 godina
članak
o PDE (plugin development environment) iz 2005, ali izgleda i danas aktuelan
Izmjenjeno od Ernad Husremović prije više od 15 godina
trebamo xtext sdk plugin i xtext antlr feature
Izmjenjeno od Ernad Husremović prije više od 15 godina
ovdje sam brljao satima
sve dok nisam uklonio:
bringout@desk-c2:~$ mv runtime-EclipseApplication/ runtime-EclipseApplication.orig
pa novi napravio nisam mogao *.prg asocirati
Izmjenjeno od Ernad Husremović prije više od 15 godina
još sahat sam danas radio sa xtext-om ... iako dosta po principu nabadanja, super je ovo stvar. može se sa njim bez problema napraviti harbour syntax aware editor.
Izmjenjeno od Ernad Husremović prije više od 15 godina
ovaj grammar (harbour.xtext):
terminal ASCII : '0x' ('0'..'7') ('0'..'9'|'A'..'F'); terminal MATH_OPERATION : '+' | '*' | '-' | '/' | '%'; HbExpression : TerminalExpression ({Operation.left=current} op=MATH_OPERATION right=HbExpression)? ; TerminalExpression returns HbExpression: '(' HbExpression ')' | {StrLiteral} value=STRING | {IntLiteral} value=INT | {IdLiteral} value=ID ; Include : '#include' includeURI=STRING; Entity : HbVariable | HbClass | HbFunction | HbArgument | HbMethod; SimpleType: 'type' name=ID; HbMethodDeclaration: 'method' name=ID '()'; HbValue: STRING; HbDataDeclaration: 'data' name=ID ('init' HbValue)*; HbClass : 'class' name=ID ddecl+=HbDataDeclaration* mdecl+=HbMethodDeclaration* 'endclass'; HbMethod : 'method' name=ID 'return'; HbFunction : 'function' name=ID '()' ML_COMMENT* statements+=HbExpression* 'return' (HbValue)*; HbVariable : varname=STRING; HbArgument : name=ID; HbStatement : HbExpression;
zna ovakav prg parsirati
#include "fmk.ch" class c1 data var1 data var2 init "00" method m1() method m2() endclass function f2() /* for a b c d */ 1*5 -2 (800) a+5 a1*b*c+(d-a) /* for a b c d */ return "OK" function f1() return
Izmjenjeno od Ernad Husremović prije više od 15 godina
Izmjenjeno od Ernad Husremović prije više od 15 godina
Izmjenjeno od Ernad Husremović prije više od 15 godina
Izmjenjeno od Ernad Husremović prije više od 15 godina
Izmjenjeno od Ernad Husremović prije više od 15 godina
skoro da sam došao do toga da je gramatika upotrebljiva ali sam jedan java fajl izbrisao (mislio sam da se u src-gen svi fajlovi regenerišu ali to nije tačno):
grammar ba.out.bring.xtext.HarbourLanguage with org.eclipse.xtext.common.Terminals generate harbourLanguage "http://www.out.ba/bring/xtext/HarbourLanguage" Model : (includes+=Include)* (elements+=Entity)+; Entity : HbComment | HbClass | HbFunction | HbMethod; /* terminal HB_STRING : ('"')('a'..'z'|'A'..'Z'|'_'|'0'..'9')*("'"); terminal HB_INT : ('0'..'9')+('.'('0'..'9')+)*; terminal HB_ID : ('^')?('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*; */ ERNAD : 'h'? 'ernad'; /* terminal HB_COMMENT_STAR: '*' -> '\n'; */ terminal HB_INT : ('0'..'9')+('.'('0'..'9')+)*; terminal WS : (' '|'\t'|'\r'|'\n')+; terminal ASCII : '0x' ('0'..'7') ('0'..'9'|'A'..'F'); terminal HB_UNARY_OPERATION : '!' | '-' | '@' | '&'; terminal HB_OPERATION : '->' | '.or.' | '.and.' | '==' | '<=' | '>=' | '<>' | "$" | '=' | ':=' | '+=' | '-=' | '+' | '*' | '-' | '/' | '%'; /* terminal HB_FOR : 'for' -> 'next'; */ /* terminal HB_DO_WHILE : 'do while' -> ('enddo'|'end'); */ /* terminal HB_IF : 'if' -> ('end'|'endif'); */ terminal HB_CLASS : 'class'|'CLASS'; terminal HB_END_CLASS : 'endclass' | 'end class'| 'END CLASS' | 'ENDCLASS'| 'END'; terminal HB_COMMENT2: '//' .* '\n'; HbComment: ML_COMMENT | HB_COMMENT2; HbIf : 'if' ifexpr=HbAllExpression (ifstatements+=HbStatement)* ('elseif' (elsestatements+=HbStatement)* )* ('else' (elsestatements+=HbStatement)* )? ('end' | 'endif') ; HbDoCase : 'do case' 'case' cexpr+=HbAllExpression (cstatements+=HbStatement*) ('return' (retval=HbAllExpression)?)? ('case' cexpr+=HbAllExpression (cstatements+=HbStatement*) ('return' (retval=HbAllExpression)?)?)* ('otherwise' (cstatements+=HbStatement*) ('return' (retval=HbAllExpression)?)?)? ('endcase' | 'end') ; HbDoWhile : ('do while' | 'while') doexpr=HbAllExpression (whilestatements+=HbStatement)* ('end' | 'enddo') ; HbFor : 'for' setexpr=HbAllExpression 'to' toexpr=HbAllExpression (forstatements+=HbStatement)* 'next' ; HbStatement : HbAllExpression | HbComment | HbIf | HbDoWhile | HbFor | HbDoCase | HbDb ; HbAllExpression : HbExpression | HbArrExpression ; HbExpression : TerminalExpression ({Operation.left=current} op=HB_OPERATION right=HbExpression)? ; TerminalExpression returns HbExpression : '(' HbExpression ')' | HB_UNARY_OPERATION unaryexpr=HbExpression | {StrLiteral} value=(STRING) | {IntLiteral} value=(HB_INT) | {IdLiteral} value=(ID) | {IdFuncCall} value=HbFuncCall | {IdNil} value=('nil'|'NIL') | {IdBool} value=('.t.'|'.T.'|'.f.'|'.F') ; HbArrExpression : arrexpr=HbExpression '[' HbArg ']' ; HbDb: HbSetOrder | HbSeek | HbUse ; HbSetOrder : ('set order to tag'|'SET ORDER TO TAG') tagexpr=HbExpression; HbSeek : ('seek'|'SEEK') seekexpr=HbExpression; HbUse : ('USE'|'use'|'usex'|'USEX'|'MY USE') seekexpr=HbExpression ('new'|'NEW')? ; Include : '#include' includeURI=STRING; HbArg : (ID (',' ID)*)? ; HbArgs : ('(' HbArg ')' | '()') ; HbVarDeclaration : ('public'|'local'|'private') HbArg; HbDataDeclaration: 'data' name=ID ('init' initval=HbExpression)*; HbMethodDeclaration: 'method' extends=[HbMethod] '()'; HbClass : HB_CLASS name=ID ddecl+=HbDataDeclaration* mdecl+=HbMethodDeclaration* HB_END_CLASS; HbMethod returns HbMethod: 'method' name=ID HbArgs vardecls+=HbVarDeclaration* statements+=HbExpression* 'return' (retval=HbExpression)?; HbFunction returns HbFunction: 'function' name=ID HbArgs (vardecls+=HbVarDeclaration)* (statements+=HbStatement)* 'return' (retval=HbExpression)?; HbFuncCall : name=[HbFunction] HbArgs ; HbVariable : varname=STRING; HbArgument : name=ID;
Izmjenjeno od Ernad Husremović prije oko 15 godina
- Naslov promijenjeno iz eclipse syntax highlight, xtext u eclipse harbour syntax highlight, xtext
- Status promijenjeno iz Dodijeljeno u Odbačeno