Lexer für PB 4
- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
Jap, darf nur #LF$ vorkommen ->
wirds wohl tun. Hab diese Zeilen nicht eingebaut, da sie doch recht viel
Zeit benötigen, auch wenns nicht nötig wäre.
Code: Alles auswählen
File.s = ReplaceString(File.s, #CR$, #LF$)
File.s = ReplaceString(File.s, #LF$+#LF$, #LF$)
Zeit benötigen, auch wenns nicht nötig wäre.
- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
Sollte möglich sein mit diesen Modifikationen (Tabs und Spaces werden
dann als #PBSC_OTHER einzeln zurückgegeben):
- Hinzufügen dieser 3 Zeilen am Anfang von _PBSC_GetNumber() direkt
nach den Variablendeklarationen:
- Entfernen aller _PBSC_Trim()s, führt zu dieser Prozedur:
Hab es aber nicht gross getestet. Die Startposition zu erfahren wäre etwas
kompliziert.
greetz
Remi
dann als #PBSC_OTHER einzeln zurückgegeben):
- Hinzufügen dieser 3 Zeilen am Anfang von _PBSC_GetNumber() direkt
nach den Variablendeklarationen:
Code: Alles auswählen
If PeekC(@s) = ' ' Or PeekC(@s) = 9
ProcedureReturn 0
EndIf
Code: Alles auswählen
Procedure.s PBSC_GetNextToken(*this.cPBSC)
Protected s0.s, Token.s, Len.l
If *this\File And (*this\FileLine <= *this\FileMaxLine Or Len(*this\Line) <> 0)
If *this\Line = ""
_PBSC_SetTokenType(*this, #PBSC_NewLine)
_PBSC_SetLastToken(*this, #LF$)
s0 = _PBSC_ReadLine(*this)
*this\Line = s0;_PBSC_Trim(*this, s0)
If ( Not *this\Started) Or (*this\Started And *this\Line = "")
ProcedureReturn #LF$
Else
*this\Started = #False
EndIf
EndIf
Len = _PBSC_FindToken(*this.cPBSC, *this\Line)
Token = Left(*this\Line, Len)
*this\Line = Mid(*this\Line, FindString(*this\Line, Token, 1)+Len(Token), Len(*this\Line)-Len(Token));_PBSC_Trim(*this, Mid(*this\Line, FindString(*this\Line, Token, 1)+Len(Token), Len(*this\Line)-Len(Token)))
ProcedureReturn Token;_PBSC_Trim(*this, Token)
Else
ProcedureReturn ""
EndIf
EndProcedure
kompliziert.
greetz
Remi
- Didelphodon
- Beiträge: 360
- Registriert: 18.12.2004 13:03
- Wohnort: Wien
- Kontaktdaten:
Bug Report:
in der Prozedur "_PBSC_GetIdentifier" , welche die Konstanten & Pointer erkennt fehlen die Identifier "width", "includefile" und "xincludefile".
Fehler bei folgendem Code:
Hier wird
"#GRAPH_VB_TEXTURE_COORDINATES_#__Texnum"
in ...
"#GRAPH_VB_TEXTURE_COORDINATES_"
"#"
"__Texnum"
aufgeteilt.
in der Prozedur "_PBSC_GetIdentifier" , welche die Konstanten & Pointer erkennt fehlen die Identifier "width", "includefile" und "xincludefile".
Fehler bei folgendem Code:
Code: Alles auswählen
Macro __VERTEXFLAGS(__Texnum)
If(VertexBufferType & #GRAPH_VB_TEXTURE_COORDINATES_#__Texnum)
VertexSize + 8 ;2*FLOAT
EndIf
EndMacro
"#GRAPH_VB_TEXTURE_COORDINATES_#__Texnum"
in ...
"#GRAPH_VB_TEXTURE_COORDINATES_"
"#"
"__Texnum"
aufgeteilt.
Hier gibts die OOP Option für PureBasic.