mirror of
https://github.com/Museum-of-Art-and-Digital-Entertainment/macross.git
synced 2024-11-25 14:34:53 +00:00
81 lines
5.8 KiB
C
81 lines
5.8 KiB
C
#ifndef BUILD_STUFF_H_
|
|
#define BUILD_STUFF_H_
|
|
|
|
#include "macrossTypes.h"
|
|
|
|
/* buildStuff1.c */
|
|
statementType *newStatement (statementKindType kind, statementBodyType body);
|
|
statementType *buildAlignStatement (expressionType *expression);
|
|
statementType *buildAssertStatement (expressionType *condition, expressionType *message);
|
|
statementType *buildBlockStatement (expressionListType *expressionList);
|
|
statementType *buildByteStatement (expressionListType *expressionList);
|
|
statementType *buildConstrainStatement (expressionType *expression, blockType *block);
|
|
statementType *buildDbyteStatement (expressionListType *expressionList);
|
|
statementType *buildDefineStatement (stringType *name, expressionType *value);
|
|
statementType *buildDoUntilStatement (blockType *body, conditionType condition);
|
|
statementType *buildDoWhileStatement (blockType *body, conditionType condition);
|
|
statementType *buildDoStatement (blockType *body, doEndType *end);
|
|
statementType *buildExternStatement (identifierListType *identifierList);
|
|
statementType *buildFreturnStatement (expressionType *expression);
|
|
statementType *buildFunctionStatement (stringType *name, argumentDefinitionListType *arguments, blockType *body);
|
|
statementType *buildGroupStatement (blockType *block);
|
|
statementType *buildIfStatement (ifHeadType *head, ifContinuationType continuation, ifContinuationKindType continuationKind);
|
|
statementType *buildIncludeStatement (expressionType *filename);
|
|
statementType *buildInstructionStatement (opcodeTableEntryType *opcode, operandListType *operands);
|
|
statementType *buildLongStatement (expressionListType *expressionList);
|
|
statementType *buildMacroStatement (macroTableEntryType *macro, argumentDefinitionListType *arguments, blockType *body);
|
|
statementType *buildMacroInstructionStatement (macroTableEntryType *macro, operandListType *operands);
|
|
statementType *buildMdefineStatement (stringType *name, expressionType *value);
|
|
statementType *buildMdoUntilStatement (blockType *body, struct expressionTermStruct *condition);
|
|
statementType *buildMdoWhileStatement (blockType *body, expressionType *condition);
|
|
statementType *buildMdoStatement (blockType *body, mdoEndType *end);
|
|
statementType *buildMforStatement (forExpressionsType *forExpressions, blockType *body);
|
|
statementType *buildMifStatement (mifHeadType *head, mifContinuationType continuation, ifContinuationKindType continuationKind);
|
|
statementType *buildMswitchStatement (expressionType *switchExpression, caseListType *cases);
|
|
statementType *buildMvariableStatement (stringType *name, expressionListType *value, expressionType *dimension);
|
|
statementType *buildMwhileStatement (expressionType *condition, blockType *body);
|
|
statementType *buildNullStatement (void);
|
|
statementType *buildOrgStatement (expressionType *expression);
|
|
statementType *buildPerformStatement (expressionType *expression);
|
|
statementType *buildRelStatement (void);
|
|
statementType *buildStartStatement (expressionType *expression);
|
|
statementType *buildStringStatement (expressionListType *expressionList);
|
|
statementType *buildStructStatement (symbolTableEntryType *name, blockType *body);
|
|
statementType *buildTargetStatement (expressionType *expression);
|
|
statementType *buildUndefineStatement (identifierListType *identifierList);
|
|
statementType *buildVariableStatement (stringType *name, expressionListType *value, expressionType *dimension);
|
|
statementType *buildWhileStatement (conditionType condition, blockType *body);
|
|
statementType *buildWordStatement (expressionListType *expressionList);
|
|
|
|
/* buildStuff2.c */
|
|
caseType *buildCase (expressionListType *caseTags, blockType *caseBody);
|
|
doEndType *buildDoEnd (conditionType condition, doEndKindType kindOfDoEnd);
|
|
forExpressionsType *buildForExpressions (expressionType *initExpression, expressionType *testExpression, expressionType *incrExpression);
|
|
ifHeadType *buildIfHead (conditionType condition, blockType *block);
|
|
mdoEndType *buildMdoEnd (expressionType *condition, doEndKindType kindOfMdoEnd);
|
|
mifHeadType *buildMifHead (expressionType *condition, blockType *block);
|
|
arrayTermType *buildArrayTerm (expressionType *array, expressionType *index);
|
|
binopTermType *buildBinopTerm (binopKindType binop, expressionType *leftArgument, expressionType *rightArgument);
|
|
functionCallTermType *buildFunctionCall (stringType *functionName, operandListType *arguments);
|
|
postOpTermType *buildPostOpTerm (postOpKindType postOp, expressionType *postOpArgument);
|
|
preOpTermType *buildPreOpTerm (preOpKindType preOp, expressionType *preOpArgument);
|
|
unopTermType *buildUnopTerm (unopKindType unop, expressionType *unopArgument);
|
|
expressionTermType *buildExpressionTerm (expressionTermKindType kindOfExpressionTerm, anyOldThing *arg1, anyOldThing *arg2, anyOldThing *arg3);
|
|
macroTableEntryType *buildMacroTableEntry (stringType *name);
|
|
symbolTableEntryType *buildSymbolTableEntry (stringType *name, symbolUsageKindType usage);
|
|
codeBreakType *buildCodeBreak (codeBreakKindType kind, addressType address, int data);
|
|
reservationListType *buildReservation (addressType startAddress, int blockSize, reservationListType *nextReservation);
|
|
simpleFixupListType *buildSimpleFixupList (valueType locationToFixup, simpleFixupListType *previousList);
|
|
|
|
/* buildStuff3.c */
|
|
argumentListHeadType *buildArgumentList (stringType *new, argumentListHeadType *rest, bool arrayTag);
|
|
caseListHeadType *buildCaseList (caseType *new, caseListHeadType *rest);
|
|
expressionListHeadType *buildExpressionList (expressionType *new, expressionListHeadType *rest);
|
|
identifierListHeadType *buildIdentifierList (stringType *new, identifierListHeadType *rest, symbolUsageKindType usage);
|
|
labelListHeadType *buildLabelList (symbolTableEntryType *new, labelListHeadType *rest);
|
|
operandListHeadType *buildOperandList (operandType *new, operandListHeadType *rest);
|
|
selectionListHeadType *buildSelectionList (selectionListType *new, selectionListHeadType *rest);
|
|
statementListHeadType *buildStatementList (statementType *new, statementListHeadType *rest);
|
|
|
|
#endif
|