|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.vishia.java2C.LocalIdents
public class LocalIdents
This class contains all identifiers visible at class level or visible at a local position of code. It means, visible at class level by generating the class members, visible at level of a block statement including stack variable etc.
| Field Summary | |
|---|---|
private java.lang.String |
debugPath
Only for toString in debugging/reporting. |
private ClassData |
declaringClassData
The ClassData for which is this member of, or null if it isn't classLevelIdents of ClassData. } |
(package private) java.util.TreeMap<java.lang.String,FieldData> |
fieldIdents
List of known fields of this context. |
private static java.lang.String |
newLineIndent
|
private LocalIdents |
parent
The parent idents. |
private java.util.TreeMap<java.lang.String,JavaSources.ClassDataOrJavaSrcFile> |
typeIdents
List of known types of this context. |
| Constructor Summary | |
|---|---|
LocalIdents(ClassData declaringClass)
constructs a new instance for a class level. |
|
LocalIdents(LocalIdents parent,
ClassData declaringClassData,
boolean hasFields,
java.lang.String sPkgName)
constructs a new instance copying all parent identifier. |
|
LocalIdents(LocalIdents parent,
java.lang.String sPkgName)
constructs a new instance with copy all parent identifier as base. |
|
LocalIdents(java.lang.String sPkgName)
constructs a new Instance for primary types. |
|
| Method Summary | |
|---|---|
(package private) void |
copyFieldsTo(ClassData innerClassData)
Copies all field idents from the current level (called for the outer class) to the named inner class and all methods bodies (its main statement block). |
(package private) void |
copyTypesTo(ClassData innerClass)
|
FieldData |
get(java.lang.String sIdent)
searches the infos to the given identifier. |
java.lang.String |
getAllTypeIdents()
Returns a String with all available type idents comma separated. |
FieldData |
getField(java.lang.String name)
Test whether the field is known and returns it data. |
ClassData |
getType(java.lang.String sIdent,
LocalIdents fileLevelIdents)
searches the ClassData to the given type identifier. |
JavaSources.ClassDataOrJavaSrcFile |
getTypeInfo(java.lang.String sIdentP,
LocalIdents fileLevelIdents)
searches the infos to the given type identifier. |
java.util.Set<java.util.Map.Entry<java.lang.String,JavaSources.ClassDataOrJavaSrcFile>> |
getTypeSet()
Returns an iterable list with all typeIdents. |
(package private) java.lang.String |
indent(int recursion)
|
void |
putClassElement(java.lang.String sIdent,
FieldData identInfo)
puts a new class element (field, attribute, reference) in the container. |
void |
putClassElement(java.lang.String sIdent,
java.lang.String sType,
ClassData typeClazz,
char staticMode,
char modeAccess,
java.lang.String sModifier,
int dimensionArray,
java.lang.String[] fixArraySizes,
char modeArrayElement,
ClassData clazz)
puts a new class element (field, attribute, reference) in the container. |
void |
putClassType(ClassData typeClazz)
|
void |
putClassType(java.lang.String sTypeIdent,
JavaSources.ClassDataOrJavaSrcFile typeClazz)
|
void |
putClassType(java.lang.String sTypeIdent,
java.lang.String sTypeNameC,
ClassData typeClazz,
java.lang.String sModifier,
ClassData clazz)
Deprecated. use #putClassType(String, ClassData) |
void |
putClassTypesAll(LocalIdents parent)
|
void |
putClassTypeStandard(ClassData typeClazz)
Puts the class into the typeIdents, with key with and without package. |
(package private) void |
putElement(java.lang.String sIdent,
FieldData identInfo)
puts a new stack-local element in the container. |
void |
putLocalElement(java.lang.String sIdent,
FieldData identInfo)
puts a new stack-local element in the container. |
(package private) void |
stop()
It's a debug helper. |
java.lang.String |
toString()
|
(package private) void |
xxxcompleteFieldIdentsForInnerClasses()
Adds all fields known here to the non-static inner classes and their methods. |
java.lang.String |
xxxwriteStructOwnClassFields(int recursion)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
final java.util.TreeMap<java.lang.String,FieldData> fieldIdents
private final java.util.TreeMap<java.lang.String,JavaSources.ClassDataOrJavaSrcFile> typeIdents
private final LocalIdents parent
private final java.lang.String debugPath
private final ClassData declaringClassData
ClassData. }
private static final java.lang.String newLineIndent
| Constructor Detail |
|---|
public LocalIdents(LocalIdents parent,
ClassData declaringClassData,
boolean hasFields,
java.lang.String sPkgName)
parent - The identifier infos of the parent scope are copied,
the parent scope is not touched (changed). This parameter should be null
while the LocalIdents of a non-inner class is created because there aren't
any identifiers to copy outside of a top-level class.
It should be given, if the LocalIdents of a method or statement blocks
or of an inner class is created.declaringClassData - All identifier infos of all super and outer classes
of this class are copied. This parameter should be null
while the LocalIdents of methods or statement blocks are created.fileLevelIdents - LocalIdents of the package.
public LocalIdents(LocalIdents parent,
java.lang.String sPkgName)
parent - The identifier infos of the parent scope is copied,
but the parent scope should be not touched (changed).public LocalIdents(java.lang.String sPkgName)
public LocalIdents(ClassData declaringClass)
declaringClass - The class where the LocalIdents are assigned to.fileLevelIdents - The LocalIdents of the package containing all package visible and commonly types.| Method Detail |
|---|
public FieldData get(java.lang.String sIdent)
sIdent - The identifier.
public ClassData getType(java.lang.String sIdent,
LocalIdents fileLevelIdents)
throws java.text.ParseException
JavaSrcTreeFile, which isn't translated, its first pass is run now.
The first pass translates the file either, or it reads its structure (stc-)file.
JavaSrcTreeFile nor as ClassData,
this method returns null.
It may be possible that the type should be exists as a unknown type, than it is created, outside of this routine
see GenerateClass.getType(org.vishia.zbnf.ZbnfParseResultItem, LocalIdents).
It may be possible too, that the identifier may be either a type
or an association. If it isn't found as type, it may be found as association. Therefore this routine
have to be returned null at unknown identifiers.
sIdent - The identifier.
java.lang.IllegalArgumentException - if any problem while running first pass occurs.
java.text.ParseException
public JavaSources.ClassDataOrJavaSrcFile getTypeInfo(java.lang.String sIdentP,
LocalIdents fileLevelIdents)
getType(String, LocalIdents).
int etc. and the java.lang.Types.
It are referred by CRuntimeJavalikeClassData.stdTypes.
Java2C_Main.externalTypes.
null at unknown identifiers.
An exception or error message mustn't create here.
sIdent - The identifier. It is possible it is a package path,
at example java.lang.Object. The separator between package idents
can be a slash or a dot.fileLevelIdents - Contains all types which are known as environment for translation
of this file. They are all package level types
and all types, which are known because import-statements.
ClassData for simple types, or it is an instance of JavaSrcTreeFile.
If the file is translated already, calling JavaSources.ClassDataOrJavaSrcFile.getClassData()
supplies the ClassData, if it isn't translated yet but only known as Java-File, getClassData() returns null.
java.text.ParseException
public void putClassElement(java.lang.String sIdent,
java.lang.String sType,
ClassData typeClazz,
char staticMode,
char modeAccess,
java.lang.String sModifier,
int dimensionArray,
java.lang.String[] fixArraySizes,
char modeArrayElement,
ClassData clazz)
sIdent - The textual representation of the identifier in java code context.sType - The associated type string if it is a field or method. null if it is a type.typeClazz - The associated type classsModifier - Kind of the identifier. See table in the description of the class ClassData.clazz - The associated class data
public void putClassElement(java.lang.String sIdent,
FieldData identInfo)
sIdent - nameidentInfo - all infos to the field
public void putClassType(java.lang.String sTypeIdent,
java.lang.String sTypeNameC,
ClassData typeClazz,
java.lang.String sModifier,
ClassData clazz)
#putClassType(String, ClassData)
sTypeIdent - The textual representation of the identifier in java code context.sTypeNameC - The type name in C, with outerclass__sTypeIdent.typeClazz - The associated type classsModifier - Kind of the identifier. See table in the description of the class ClassData.clazz - The associated class data
public void putClassType(java.lang.String sTypeIdent,
JavaSources.ClassDataOrJavaSrcFile typeClazz)
public void putClassType(ClassData typeClazz)
public void putClassTypeStandard(ClassData typeClazz)
typeClazz - The class.public void putClassTypesAll(LocalIdents parent)
public void putLocalElement(java.lang.String sIdent,
FieldData identInfo)
sIdent - identInfo -
void putElement(java.lang.String sIdent,
FieldData identInfo)
sIdent - identInfo - public FieldData getField(java.lang.String name)
name - The name of the field. The field can be local or in super scopes.
void xxxcompleteFieldIdentsForInnerClasses()
ClassData.classLevelIdents
for all classes.
void copyFieldsTo(ClassData innerClassData)
ClassData#completeFieldIdentsFromOuterClass(LocalIdents) is called unlike
if a class is generated in the second pass inside a block statement. In this case the
first pass of this class is running only in the second pass of the environment.
innerClassData - void copyTypesTo(ClassData innerClass)
java.lang.String indent(int recursion)
public java.lang.String xxxwriteStructOwnClassFields(int recursion)
public java.lang.String getAllTypeIdents()
public java.util.Set<java.util.Map.Entry<java.lang.String,JavaSources.ClassDataOrJavaSrcFile>> getTypeSet()
public java.lang.String toString()
toString in class java.lang.Objectvoid stop()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||