This commit is contained in:
ninemine
2025-07-03 18:46:52 +08:00
parent cf27c2336f
commit fff7b274f5
3 changed files with 48 additions and 8 deletions

View File

@@ -53,7 +53,7 @@ namespace Convention.Symbolization.Keyword
}
/// <summary>
/// <b><see langword="namespace"/> name</b>
/// <b><see langword="namespace"/> name { ... }</b>
/// </summary>
public sealed class Namespace : Internal.Keyword<Namespace>
{
@@ -63,7 +63,7 @@ namespace Convention.Symbolization.Keyword
}
/// <summary>
/// <b><see langword="def"/> FunctionName(type1 arg1, type args...) -> return-type</b>
/// <b><see langword="def"/> FunctionName(parameter-list) -> return-type { ... return return-type-instance; }</b>
/// </summary>
public sealed class FunctionDef : Internal.Keyword<FunctionDef>
{
@@ -73,7 +73,7 @@ namespace Convention.Symbolization.Keyword
}
/// <summary>
/// <b><see langword="return"/> symbol</b>
/// <b><see langword="return"/> symbol;</b>
/// </summary>
public sealed class Return : Internal.Keyword<Return>
{
@@ -83,7 +83,7 @@ namespace Convention.Symbolization.Keyword
}
/// <summary>
/// <b><see langword="if"/>(bool-expression)</b>
/// <b><see langword="if"/>(bool-expression) expression</b>
/// </summary>
public sealed class If : Internal.Keyword<If>
{
@@ -103,7 +103,7 @@ namespace Convention.Symbolization.Keyword
}
/// <summary>
/// <b><see langword="while"/>(bool-expression)</b>
/// <b><see langword="while"/>(bool-expression) expression</b>
/// </summary>
public sealed class While : Internal.Keyword<While>
{
@@ -113,7 +113,7 @@ namespace Convention.Symbolization.Keyword
}
/// <summary>
/// <b><see langword="break"/></b>
/// <b><see langword="break"/>;</b>
/// </summary>
public sealed class Break : Internal.Keyword<Break>
{
@@ -123,7 +123,7 @@ namespace Convention.Symbolization.Keyword
}
/// <summary>
/// <b><see langword="continue"/></b>
/// <b><see langword="continue"/>;</b>
/// </summary>
public sealed class Continue : Internal.Keyword<Continue>
{
@@ -133,7 +133,7 @@ namespace Convention.Symbolization.Keyword
}
/// <summary>
/// <b><see langword="struct"/> structureName</b>
/// <b><see langword="struct"/> structureName { ... }</b>
/// </summary>
public sealed class Structure : Internal.Keyword<Structure>
{

View File

@@ -0,0 +1,38 @@
namespace Convention.Symbolization.Internal
{
public class ScriptWordVariable : CloneableVariable<ScriptWordVariable>
{
public readonly string word;
public ScriptWordVariable(string word) : base("")
{
this.word = word;
}
public override ScriptWordVariable CloneVariable(string targetSymbolName)
{
return new ScriptWordVariable(word);
}
public override bool Equals(ScriptWordVariable other)
{
return other is not null && word.Equals(other.word);
}
public Keyword GetKeyword()
{
if(Keyword.Keywords.TryGetValue(word, out var keyword))
return keyword;
return null;
}
public Variable GetVariable(SymbolizationContext context)
{
if (context.Variables.TryGetValue(word, out var variable))
{
return variable;
}
return null;
}
}
}