mirror of
https://github.com/esp8266/Arduino.git
synced 2025-10-16 22:27:59 +03:00
Reworked build system: makefiles replaced with in-program logic; core replaced with targets; preproc/ replaced with Wiring's; now prepend "#include "WProgram.h" instead of wiringlite.inc; new entries in preferences.txt; bundled Wiring libs.
This commit is contained in:
73
app/preproc/PreprocessorInfoChannel.java
Executable file
73
app/preproc/PreprocessorInfoChannel.java
Executable file
@@ -0,0 +1,73 @@
|
||||
package processing.app.preproc;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class PreprocessorInfoChannel
|
||||
{
|
||||
Hashtable lineLists = new Hashtable(); // indexed by Token number
|
||||
int firstValidTokenNumber = 0;
|
||||
int maxTokenNumber = 0;
|
||||
|
||||
public void addLineForTokenNumber( Object line, Integer toknum )
|
||||
{
|
||||
if ( lineLists.containsKey( toknum ) ) {
|
||||
Vector lines = (Vector) lineLists.get( toknum );
|
||||
lines.addElement(line);
|
||||
}
|
||||
else {
|
||||
Vector lines = new Vector();
|
||||
lines.addElement(line);
|
||||
lineLists.put(toknum, lines);
|
||||
if ( maxTokenNumber < toknum.intValue() ) {
|
||||
maxTokenNumber = toknum.intValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int getMaxTokenNumber()
|
||||
{
|
||||
return maxTokenNumber;
|
||||
}
|
||||
|
||||
public Vector extractLinesPrecedingTokenNumber( Integer toknum )
|
||||
{
|
||||
Vector lines = new Vector();
|
||||
if (toknum == null) return lines;
|
||||
for (int i = firstValidTokenNumber; i < toknum.intValue(); i++){
|
||||
Integer inti = new Integer(i);
|
||||
if ( lineLists.containsKey( inti ) ) {
|
||||
Vector tokenLineVector = (Vector) lineLists.get( inti );
|
||||
if ( tokenLineVector != null) {
|
||||
Enumeration tokenLines = tokenLineVector.elements();
|
||||
while ( tokenLines.hasMoreElements() ) {
|
||||
lines.addElement( tokenLines.nextElement() );
|
||||
}
|
||||
lineLists.remove(inti);
|
||||
}
|
||||
}
|
||||
}
|
||||
firstValidTokenNumber = toknum.intValue();
|
||||
return lines;
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
StringBuffer sb = new StringBuffer("PreprocessorInfoChannel:\n");
|
||||
for (int i = 0; i <= maxTokenNumber + 1; i++){
|
||||
Integer inti = new Integer(i);
|
||||
if ( lineLists.containsKey( inti ) ) {
|
||||
Vector tokenLineVector = (Vector) lineLists.get( inti );
|
||||
if ( tokenLineVector != null) {
|
||||
Enumeration tokenLines = tokenLineVector.elements();
|
||||
while ( tokenLines.hasMoreElements() ) {
|
||||
sb.append(inti + ":" + tokenLines.nextElement() + '\n');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user