| Beginner grammar problem [message #692143] | 
Sun, 03 July 2011 13:48   | 
 
Eclipse User  | 
 | 
 | 
   | 
 
Hello EveryBody! 
I have some problems with definition of mydsl grammar  
 
I have several Lists<String> which are Writers, Books PageNumber, Isb respectively in my ProposalProvider class  
 
in myDsl I will create a text line which is called NonEmptyline which consists of the lists of Writers, Books PageNumber, Isbn respectively  
 
for example: in my DSL, each line has to be just like this 
 
Stefen_King:Full_Dark_No_Stars:789:1234567  
 
each element will be called from a different List by content  assist. Here my code is below, when i run as .MWE2 i get errors 
 
Librarymodel:
	(elements+=NonEmptyline)*;
	
NonEmptyline:
	Writers':' Books ':'PageNumber ':' IsbnNumber
;
Writers:
	 name=WriterName ':';
	WriterName hidden(): ID (WS ID)* ;
Books:
	name=BookName ':'
	BookName hidden (): ID (WS ID)* ;
PageNumber:
	name=Page ':'
	Page hidden (): ID (WS ID)* ;
	
	;
IsbnNumber:
	name=Isbn ':'
	Isbn hidden (): ID (WS ID)* ;
  
 
 
I look forward to hear your solutions 
 
Sincerely 
[Updated on: Sun, 03 July 2011 13:49] by Moderator  
 |  
 |  
  | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| Re: Beginner grammar problem [message #692405 is a reply to message #692396] | 
Mon, 04 July 2011 07:47    | 
 
Eclipse User  | 
 | 
 | 
   | 
 
Librarymodel:
	(elements+=CrossReference)*;
CrossReference:
	referencedObjct=[NonEmpityLine];
NonEmptyline:
	writer=Words ':' book=Words ':'pageNumber=INT ':' isbn=INT
;
Words hidden (): ID (WS ID)* ;
  
 
is this right as grammar? 
 
 
 
~ProposalProvider extends Abstract~..~ProposalProvider implements ILinkingService {
......
ArrayList<String> writers = new ArrayList<String>();
writers.add("writer1"); 
writers.add("writer2"); 
writers.add("writer3"); 
....
@Override
	public void complete_writers(EObject model, RuleCall ruleCall,
			ContentAssistContext context, ICompletionProposalAcceptor acceptor) {
		for(String writer: writers){
			acceptor.accept(createCompletionProposal(writer,context));
		}
		// TODO Auto-generated method stub
		super.complete_LogItem(model, ruleCall, context, acceptor);
	}
.....
// Actually, I dont know how to context this with writer 
@Override
	public List<EObject> getLinkedObjects(EObject context,
			EReference reference, INode node) throws IllegalNodeException {
		// TODO Auto-generated method stub
		return null;
	}
}//class end
 
[Updated on: Mon, 04 July 2011 08:32] by Moderator  
 |  
 |  
  | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
Powered by 
FUDForum. Page generated in 0.05489 seconds