forked from cosmonaut/wraith-lang
				
			new type declaration style
							parent
							
								
									a2e5cb434b
								
							
						
					
					
						commit
						b344635c8d
					
				
							
								
								
									
										16
									
								
								wraith.y
								
								
								
								
							
							
						
						
									
										16
									
								
								wraith.y
								
								
								
								
							|  | @ -166,13 +166,13 @@ Expression              : PrimaryExpression | |||
|                         | BinaryExpression | ||||
|                         ; | ||||
| 
 | ||||
| VariableDeclaration     : Type Identifier | ||||
| VariableDeclaration     : Identifier COLON Type | ||||
|                         { | ||||
|                             $$ = MakeDeclarationNode($1, $2); | ||||
|                             $$ = MakeDeclarationNode($3, $1); | ||||
|                         } | ||||
|                         | Identifier Identifier | ||||
|                         | Identifier COLON Identifier | ||||
|                         { | ||||
|                             $$ = MakeDeclarationNode(MakeCustomTypeNode($1), $2); | ||||
|                             $$ = MakeDeclarationNode(MakeCustomTypeNode($3), $1); | ||||
|                         } | ||||
| 
 | ||||
| AssignmentStatement     : VariableDeclaration EQUAL Expression | ||||
|  | @ -265,24 +265,24 @@ Body                    : LEFT_BRACE Statements RIGHT_BRACE | |||
|                             PopStackFrame(stack); | ||||
|                         } | ||||
| 
 | ||||
| FunctionSignature       : Type Identifier LEFT_PAREN SignatureArguments RIGHT_PAREN | ||||
| FunctionSignature       : Identifier LEFT_PAREN SignatureArguments RIGHT_PAREN COLON Type | ||||
|                         { | ||||
|                             Node **declarations; | ||||
|                             uint32_t declarationCount; | ||||
| 
 | ||||
|                             declarations = GetNodes(stack, &declarationCount); | ||||
|                             $$ = MakeFunctionSignatureNode($2, $1, MakeFunctionSignatureArgumentsNode(declarations, declarationCount), MakeFunctionModifiersNode(NULL, 0)); | ||||
|                             $$ = MakeFunctionSignatureNode($1, $6, MakeFunctionSignatureArgumentsNode(declarations, declarationCount), MakeFunctionModifiersNode(NULL, 0)); | ||||
| 
 | ||||
|                             PopStackFrame(stack); | ||||
|                         } | ||||
|                         | STATIC Type Identifier LEFT_PAREN SignatureArguments RIGHT_PAREN | ||||
|                         | STATIC Identifier LEFT_PAREN SignatureArguments RIGHT_PAREN COLON Type | ||||
|                         { | ||||
|                             Node **declarations; | ||||
|                             uint32_t declarationCount; | ||||
|                             Node *modifier = MakeStaticNode(); | ||||
| 
 | ||||
|                             declarations = GetNodes(stack, &declarationCount); | ||||
|                             $$ = MakeFunctionSignatureNode($3, $2, MakeFunctionSignatureArgumentsNode(declarations, declarationCount), MakeFunctionModifiersNode(&modifier, 1)); | ||||
|                             $$ = MakeFunctionSignatureNode($2, $7, MakeFunctionSignatureArgumentsNode(declarations, declarationCount), MakeFunctionModifiersNode(&modifier, 1)); | ||||
| 
 | ||||
|                             PopStackFrame(stack); | ||||
|                         } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue