mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-24 12:35:31 +00:00
X#
This commit is contained in:
parent
7604951483
commit
fc4c24f7fc
1 changed files with 6 additions and 3 deletions
|
|
@ -16,8 +16,8 @@ namespace Cosmos.Compiler.XSharp {
|
||||||
public Generator() {
|
public Generator() {
|
||||||
mPatterns.Add(new TokenPattern(new TokenType[] { TokenType.Literal }),
|
mPatterns.Add(new TokenPattern(new TokenType[] { TokenType.Literal }),
|
||||||
"new LiteralAssemblerCode(\"{0}\");");
|
"new LiteralAssemblerCode(\"{0}\");");
|
||||||
mPatterns.Add(new TokenPattern(new TokenType[] { TokenType.Comment }),
|
//mPatterns.Add(new TokenPattern(new TokenType[] { TokenType.Comment }),
|
||||||
"new Comment(\"{0}\");");
|
// "new Comment(\"{0}\");");
|
||||||
mPatterns.Add(new TokenPattern(new TokenType[] { TokenType.Register, TokenType.Assignment, TokenType.ValueNumber }),
|
mPatterns.Add(new TokenPattern(new TokenType[] { TokenType.Register, TokenType.Assignment, TokenType.ValueNumber }),
|
||||||
"new Move{{DestinationReg = RegistersEnum.{0}, SourceValue = {2}}};");
|
"new Move{{DestinationReg = RegistersEnum.{0}, SourceValue = {2}}};");
|
||||||
}
|
}
|
||||||
|
|
@ -76,7 +76,10 @@ namespace Cosmos.Compiler.XSharp {
|
||||||
var xTokens = xParser.Tokens;
|
var xTokens = xParser.Tokens;
|
||||||
|
|
||||||
var xPattern = xTokens.Select(c => c.Type).ToArray();
|
var xPattern = xTokens.Select(c => c.Type).ToArray();
|
||||||
var xCode = mPatterns[new TokenPattern(xPattern)];
|
string xCode;
|
||||||
|
if (!mPatterns.TryGetValue(new TokenPattern(xPattern), out xCode)) {
|
||||||
|
throw new Exception("Invalid token pattern in X# file.");
|
||||||
|
}
|
||||||
mOutput.WriteLine(xCode, xTokens.Select(c => c.Value).ToArray());
|
mOutput.WriteLine(xCode, xTokens.Select(c => c.Value).ToArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue