Skip to content

Commit

Permalink
feat: Add Variable Assignment
Browse files Browse the repository at this point in the history
  • Loading branch information
liulinboyi committed Feb 25, 2021
1 parent df221d5 commit 5dbc409
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 6 deletions.
1 change: 1 addition & 0 deletions demo/hello-world-2.pineapple
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ $b = 1
#print($b)
#$e = "啊哈哈哈哈"
$c = $b
print($c)
6 changes: 5 additions & 1 deletion dist/src/parser/Assignment.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@ function parseAssignment(lexer) {
if (lexer.LookAhead().tokenType === parser_1.TOKEN_VAR_PREFIX) {
const Variable = parser_1.parseVariable(lexer); // 标识符
console.log(Variable, 'Variable');
assignment.Variable = Variable;
const identifier = { name: Variable.Name, type: "Identifier" };
VariableDeclarator.init = identifier;
assignment.type = "VariableDeclaration";
assignment.declarations.push(VariableDeclarator); // 一行只允许声明和初始化一个变量
// assignment.Variable = Variable
return assignment;
}
else {
Expand Down
9 changes: 4 additions & 5 deletions src/parser/Assignment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,22 +57,21 @@ export function parseAssignment(lexer: Lexer) {
if (lexer.LookAhead().tokenType === TOKEN_VAR_PREFIX) {
const Variable = parseVariable(lexer) // 标识符
console.log(Variable, 'Variable')
assignment.Variable = Variable
const identifier = { name: Variable.Name, type: "Identifier" }
VariableDeclarator.init = identifier
assignment.type = "VariableDeclaration"
assignment.declarations.push(VariableDeclarator) // 一行只允许声明和初始化一个变量
return assignment
} else {
if (lexer.isNumber(lexer.sourceCode[0])) {
// console.log('parseNumber start')
const literial = new Literal(parseNumber(lexer))
VariableDeclarator.init = literial
// assignment.Literal = literial
// assignment.type = tokenNameMap[NUMBER]
assignment.type = "VariableDeclaration"
// console.log('parseNumber end')
} else {
const literial = new Literal(parseString(lexer))
// assignment.Literal = literial
VariableDeclarator.init = literial
// assignment.type = tokenNameMap[STRING]
assignment.type = "VariableDeclaration"
}

Expand Down

0 comments on commit 5dbc409

Please sign in to comment.