llcppg/ast:marco & token
This commit is contained in:
@@ -16,6 +16,10 @@
|
|||||||
|
|
||||||
package ast
|
package ast
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/goplus/llgo/chore/llcppg/token"
|
||||||
|
)
|
||||||
|
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
|
|
||||||
type Node interface {
|
type Node interface {
|
||||||
@@ -44,6 +48,11 @@ type PPD interface { // preprocessing directive
|
|||||||
// =============================================================================
|
// =============================================================================
|
||||||
// Expressions (Types are also expressions)
|
// Expressions (Types are also expressions)
|
||||||
|
|
||||||
|
type Token struct {
|
||||||
|
Token token.Token
|
||||||
|
Lit string
|
||||||
|
}
|
||||||
|
|
||||||
type BasicLitKind uint
|
type BasicLitKind uint
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -293,6 +302,8 @@ func (*Include) ppdNode() {}
|
|||||||
// ------------------------------------------------
|
// ------------------------------------------------
|
||||||
|
|
||||||
type Macro struct {
|
type Macro struct {
|
||||||
|
Name string
|
||||||
|
Info []*Token
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*Macro) ppdNode() {}
|
func (*Macro) ppdNode() {}
|
||||||
|
|||||||
27
chore/llcppg/token/token.go
Normal file
27
chore/llcppg/token/token.go
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package token
|
||||||
|
|
||||||
|
type Token uint
|
||||||
|
|
||||||
|
const (
|
||||||
|
/**
|
||||||
|
* A token that contains some kind of punctuation.
|
||||||
|
*/
|
||||||
|
PunctuationToken Token = iota
|
||||||
|
/**
|
||||||
|
* A language keyword.
|
||||||
|
*/
|
||||||
|
KeywordToken
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An identifier (that is not a keyword).
|
||||||
|
*/
|
||||||
|
IdentifierToken
|
||||||
|
/**
|
||||||
|
* A numeric, string, or character literal.
|
||||||
|
*/
|
||||||
|
LiteralToken
|
||||||
|
/**
|
||||||
|
* A comment.
|
||||||
|
*/
|
||||||
|
CommentToken
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user