diff options
author | Jean-Baptiste Queru <jbq@google.com> | 2009-07-29 23:56:48 +0200 |
---|---|---|
committer | Jean-Baptiste Queru <jbq@google.com> | 2009-07-29 23:56:48 +0200 |
commit | 34109de24e124dff020b26552d46b20299d779fd (patch) | |
tree | a56912e18b608b123f1c4454293d2b2aa36fa96a /amend/ast.c | |
parent | Merge korg/donut into korg/master (diff) | |
parent | remove amend (diff) | |
download | android_bootable_recovery-34109de24e124dff020b26552d46b20299d779fd.tar android_bootable_recovery-34109de24e124dff020b26552d46b20299d779fd.tar.gz android_bootable_recovery-34109de24e124dff020b26552d46b20299d779fd.tar.bz2 android_bootable_recovery-34109de24e124dff020b26552d46b20299d779fd.tar.lz android_bootable_recovery-34109de24e124dff020b26552d46b20299d779fd.tar.xz android_bootable_recovery-34109de24e124dff020b26552d46b20299d779fd.tar.zst android_bootable_recovery-34109de24e124dff020b26552d46b20299d779fd.zip |
Diffstat (limited to 'amend/ast.c')
-rw-r--r-- | amend/ast.c | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/amend/ast.c b/amend/ast.c deleted file mode 100644 index f53efdc9c..000000000 --- a/amend/ast.c +++ /dev/null @@ -1,198 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include <stdio.h> -#include "ast.h" - -static const char gSpaces[] = - " " - " " - " " - " " - " " - " " - " "; -const int gSpacesMax = sizeof(gSpaces) - 1; - -static const char * -pad(int level) -{ - level *= 4; - if (level > gSpacesMax) { - level = gSpacesMax; - } - return gSpaces + gSpacesMax - level; -} - -void dumpBooleanValue(int level, const AmBooleanValue *booleanValue); -void dumpStringValue(int level, const AmStringValue *stringValue); - -void -dumpBooleanExpression(int level, const AmBooleanExpression *booleanExpression) -{ - const char *op; - bool unary = false; - - switch (booleanExpression->op) { - case AM_BOP_NOT: - op = "NOT"; - unary = true; - break; - case AM_BOP_EQ: - op = "EQ"; - break; - case AM_BOP_NE: - op = "NE"; - break; - case AM_BOP_AND: - op = "AND"; - break; - case AM_BOP_OR: - op = "OR"; - break; - default: - op = "??"; - break; - } - - printf("%sBOOLEAN %s {\n", pad(level), op); - dumpBooleanValue(level + 1, booleanExpression->arg1); - if (!unary) { - dumpBooleanValue(level + 1, booleanExpression->arg2); - } - printf("%s}\n", pad(level)); -} - -void -dumpFunctionArguments(int level, const AmFunctionArguments *functionArguments) -{ - int i; - for (i = 0; i < functionArguments->argc; i++) { - dumpStringValue(level, &functionArguments->argv[i]); - } -} - -void -dumpFunctionCall(int level, const AmFunctionCall *functionCall) -{ - printf("%sFUNCTION %s (\n", pad(level), functionCall->name); - dumpFunctionArguments(level + 1, functionCall->args); - printf("%s)\n", pad(level)); -} - -void -dumpStringValue(int level, const AmStringValue *stringValue) -{ - switch (stringValue->type) { - case AM_SVAL_LITERAL: - printf("%s\"%s\"\n", pad(level), stringValue->u.literal); - break; - case AM_SVAL_FUNCTION: - dumpFunctionCall(level, stringValue->u.function); - break; - default: - printf("%s<UNKNOWN SVAL TYPE %d>\n", pad(level), stringValue->type); - break; - } -} - -void -dumpStringComparisonExpression(int level, - const AmStringComparisonExpression *stringComparisonExpression) -{ - const char *op; - - switch (stringComparisonExpression->op) { - case AM_SOP_LT: - op = "LT"; - break; - case AM_SOP_LE: - op = "LE"; - break; - case AM_SOP_GT: - op = "GT"; - break; - case AM_SOP_GE: - op = "GE"; - break; - case AM_SOP_EQ: - op = "EQ"; - break; - case AM_SOP_NE: - op = "NE"; - break; - default: - op = "??"; - break; - } - printf("%sSTRING %s {\n", pad(level), op); - dumpStringValue(level + 1, stringComparisonExpression->arg1); - dumpStringValue(level + 1, stringComparisonExpression->arg2); - printf("%s}\n", pad(level)); -} - -void -dumpBooleanValue(int level, const AmBooleanValue *booleanValue) -{ - switch (booleanValue->type) { - case AM_BVAL_EXPRESSION: - dumpBooleanExpression(level, &booleanValue->u.expression); - break; - case AM_BVAL_STRING_COMPARISON: - dumpStringComparisonExpression(level, - &booleanValue->u.stringComparison); - break; - default: - printf("%s<UNKNOWN BVAL TYPE %d>\n", pad(1), booleanValue->type); - break; - } -} - -void -dumpWordList(const AmWordList *wordList) -{ - int i; - for (i = 0; i < wordList->argc; i++) { - printf("%s\"%s\"\n", pad(1), wordList->argv[i]); - } -} - -void -dumpCommandArguments(const AmCommandArguments *commandArguments) -{ - if (commandArguments->booleanArgs) { - dumpBooleanValue(1, commandArguments->u.b); - } else { - dumpWordList(commandArguments->u.w); - } -} - -void -dumpCommand(const AmCommand *command) -{ - printf("command \"%s\" {\n", command->name); - dumpCommandArguments(command->args); - printf("}\n"); -} - -void -dumpCommandList(const AmCommandList *commandList) -{ - int i; - for (i = 0; i < commandList->commandCount; i++) { - dumpCommand(commandList->commands[i]); - } -} |