...
This commit is contained in:
@@ -334,15 +334,14 @@ public class Parser
|
||||
}
|
||||
else if (TryExpectIdent(out var ident))
|
||||
{
|
||||
if (TryExpectSymbol(Symbol.ColonColon))
|
||||
List<TokenIdent> sections = [ident];
|
||||
|
||||
while (TryExpectSymbol(Symbol.ColonColon))
|
||||
{
|
||||
var name = ExpectIdent();
|
||||
expr = new NodeExpressionModuleIdent(TokensFrom(startIndex), ident, name);
|
||||
}
|
||||
else
|
||||
{
|
||||
expr = new NodeExpressionLocalIdent(TokensFrom(startIndex), ident);
|
||||
sections.Add(ExpectIdent());
|
||||
}
|
||||
|
||||
expr = new NodeExpressionIdent(TokensFrom(startIndex), sections);
|
||||
}
|
||||
else if (TryExpectKeyword(Keyword.Struct))
|
||||
{
|
||||
@@ -817,9 +816,9 @@ public class NodeExpressionBoolLiteral(List<Token> tokens, TokenBoolLiteral valu
|
||||
public TokenBoolLiteral Value { get; } = value;
|
||||
}
|
||||
|
||||
public class NodeExpressionStructLiteral(List<Token> tokens, NodeType? type, List<NodeExpressionStructLiteral.Initializer> initializers) : NodeExpression(tokens)
|
||||
public class NodeExpressionStructLiteral(List<Token> tokens, NodeType type, List<NodeExpressionStructLiteral.Initializer> initializers) : NodeExpression(tokens)
|
||||
{
|
||||
public NodeType? Type { get; } = type;
|
||||
public NodeType Type { get; } = type;
|
||||
public List<Initializer> Initializers { get; } = initializers;
|
||||
|
||||
public class Initializer(List<Token> tokens, TokenIdent name, NodeExpression value) : Node(tokens)
|
||||
@@ -849,15 +848,9 @@ public class NodeExpressionFuncCall(List<Token> tokens, NodeExpression target, L
|
||||
public List<NodeExpression> Parameters { get; } = parameters;
|
||||
}
|
||||
|
||||
public class NodeExpressionLocalIdent(List<Token> tokens, TokenIdent value) : NodeExpression(tokens)
|
||||
public class NodeExpressionIdent(List<Token> tokens, List<TokenIdent> sections) : NodeExpression(tokens)
|
||||
{
|
||||
public TokenIdent Value { get; } = value;
|
||||
}
|
||||
|
||||
public class NodeExpressionModuleIdent(List<Token> tokens, TokenIdent module, TokenIdent value) : NodeExpression(tokens)
|
||||
{
|
||||
public TokenIdent Module { get; } = module;
|
||||
public TokenIdent Value { get; } = value;
|
||||
public List<TokenIdent> Sections { get; } = sections;
|
||||
}
|
||||
|
||||
public class NodeExpressionBinary(List<Token> tokens, NodeExpression left, NodeExpressionBinary.Op operation, NodeExpression right) : NodeExpression(tokens)
|
||||
|
||||
Reference in New Issue
Block a user