1
0

文字列を実�

This commit is contained in:
otya128
2015-06-07 13:32:38 +09:00
parent 65fe8558a2
commit 47de1d20bd
3 changed files with 6 additions and 17 deletions

View File

@@ -164,14 +164,6 @@ class Compiler
//FOR I=0 TO -1 STEP -1
//-1>0 false
//1>0 true
/*
genCodeImm(Value("Helloneg\n"));
compileExpression(node.toExpression);
genCodeImm(Value("\nTo\n"));
compileExpression(node.stepExpression);
genCodeImm(Value("Step\n"));
*/
//code ~= new PrintCode(5);
compileExpression(node.toExpression);
genCodePushGlobal(getGlobalVarIndex(node.initExpression.name));
genCodeOP(TokenType.Greater);
@@ -184,13 +176,6 @@ class Compiler
//0<0 false
//1<0 false
//0<1 true break
/*
genCodeImm(Value("HelloPositive\n"));
compileExpression(node.toExpression);
genCodeImm(Value("\nTo\n"));
compileExpression(node.stepExpression);
genCodeImm(Value("Step\n"));
code ~= new PrintCode(5);*/
compileExpression(node.toExpression);
genCodePushGlobal(getGlobalVarIndex(node.initExpression.name));
genCodeOP(TokenType.Less);

View File

@@ -22,6 +22,7 @@ FOR I=-2 TO -9 STEP -2
PRINT I
NEXT
?I
?\"Hello, World!!\"
");
auto vm = parser.compile();
vm.run();

View File

@@ -122,13 +122,15 @@ class Lexical
for(;i < code.length;i++)
{
c = code[i];
if(c == '"')//"を閉じない文も許容
if(c == '"' || c == '\r' || c == '\n')//"を閉じない文も許容
{
i++;
break;
}
str ~= c;
}
token = Token(TokenType.String, Value(str));
break;
}
if(c == '@')
{
@@ -658,10 +660,11 @@ class Parser
Expression node = null;
switch(token.type)
{
case TokenType.String:
case TokenType.Integer:
version(none)write(token.value.integerValue, ' ');
version(none)stdout.flush();
node = new Constant(Value(token.value.integerValue));
node = new Constant(token.value);
break;
case TokenType.Iden:
if(!lex.empty())