文字列を実�
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -22,6 +22,7 @@ FOR I=-2 TO -9 STEP -2
|
||||
PRINT I
|
||||
NEXT
|
||||
?I
|
||||
?\"Hello, World!!\"
|
||||
");
|
||||
auto vm = parser.compile();
|
||||
vm.run();
|
||||
|
||||
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user