org.eclipse.emf.importer.rose.parser
Class RoseParser

java.lang.Object
  extended by org.eclipse.emf.importer.rose.parser.RoseParser

public class RoseParser
extends java.lang.Object

A parser for Rose files. This parser uses the following contex-free grammar:

   E  -> ( O )  |  ( L )  |  ( V )  |   S'  ;expression
   S' -> S  |  "|" S'                       ;sequence of strings
   S" -> EPS | S' S"                        ;sequence of strings inside list
   O  -> object S P'                        ;object
   V  -> value S S'                         ;value
   P' -> EPS  |  P P'                       ;sequence of pairs
   P  -> K E                                ;pair
   L  -> list S O' | list S S"              ;list
   O' -> EPS  |  ( O ) O'                   ;sequence of objects
 
Here are the terminals:
   K      is a key token (always one word)
   S      is a string token (can have multiple words)
   object is an object token
   list   is a list token
   "|"    is a vertical bar token
   EPS    is an empty string token
 


Field Summary
protected  java.lang.String baseId
           
protected  java.util.Stack<java.lang.Integer> idStack
           
protected  boolean isAllowed
           
protected  boolean isListMapping
           
protected  boolean isRoot
           
protected  boolean isTreeOnly
           
protected  RoseLexer lexer
           
protected  boolean mapProperties
           
protected  RoseNode modelTree
           
protected  boolean noLogicalPresentation
           
protected  RoseNode versionTree
           
 
Constructor Summary
RoseParser(RoseLexer lexer)
           
RoseParser(RoseLexer lexer, boolean isTreeOnly)
           
RoseParser(RoseLexer lexer, boolean isTreeOnly, boolean noPresentation)
           
 
Method Summary
 RoseNode getModelTree()
           
 RoseNode getVersionTree()
           
 void parse()
           
 void traverseTree(java.util.List<java.lang.Integer> path)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

lexer

protected RoseLexer lexer

versionTree

protected RoseNode versionTree

modelTree

protected RoseNode modelTree

baseId

protected java.lang.String baseId

idStack

protected java.util.Stack<java.lang.Integer> idStack

isTreeOnly

protected boolean isTreeOnly

isAllowed

protected boolean isAllowed

isRoot

protected boolean isRoot

isListMapping

protected boolean isListMapping

noLogicalPresentation

protected boolean noLogicalPresentation

mapProperties

protected boolean mapProperties
Constructor Detail

RoseParser

public RoseParser(RoseLexer lexer)

RoseParser

public RoseParser(RoseLexer lexer,
                  boolean isTreeOnly)

RoseParser

public RoseParser(RoseLexer lexer,
                  boolean isTreeOnly,
                  boolean noPresentation)
Method Detail

getVersionTree

public RoseNode getVersionTree()

getModelTree

public RoseNode getModelTree()

parse

public void parse()

traverseTree

public void traverseTree(java.util.List<java.lang.Integer> path)

Copyright 2001-2006 IBM Corporation and others.
All Rights Reserved.