Chromium Code Reviews| Index: mojom/mojom_parser/parser_main.go |
| diff --git a/mojom/mojom_parser/parser_main.go b/mojom/mojom_parser/parser_main.go |
| deleted file mode 100644 |
| index d00523ed6535dcaa5552dd455e54d4fd5d439498..0000000000000000000000000000000000000000 |
| --- a/mojom/mojom_parser/parser_main.go |
| +++ /dev/null |
| @@ -1,139 +0,0 @@ |
| -// Copyright 2015 The Chromium Authors. All rights reserved. |
| -// Use of this source code is governed by a BSD-style license that can be |
| -// found in the LICENSE file. |
| - |
| -/* |
|
rudominer
2016/02/19 05:49:16
I wonder why the code review tool shows this file
|
| - This file contains the main() for the Mojom parser binary. This tool parses |
| - a set of .mojom files and emits a serialized MojomFileGraph struct. See |
| - mojom_files.mojom for the definition of MojomFileGraph. |
| - |
| - The tool is invoked as follows: |
| - |
| - mojom_parser [-I <include_dirs>] [-out <out_file>] [-debug] <mojom_file>... |
| - |
| - <include_dirs> is comma-separated list of directory paths to search for mojom imports. |
| - <out_file> is the path to the output file. If not given the output will be written to standard out. |
| - <mojom_file>... is one or more paths to .mojom files to be parsed. |
| - |
| - If there are no errors then the program returns status zero and writes nothing |
| - to standard error and writes nothing to standard out except possibly the output |
| - if <out_file> is not specified. If there are any errors then the program returns |
| - status code 1 and writes error messages to standard error. |
| - |
| - If -debug is specified then the program emits lots of debugging data to |
| - standard out, including a depiction of the parse trees. If also <out_file> is |
| - not specified then the actual output is written at the end after the debugging |
| - data. |
| -*/ |
| - |
| -package main |
| - |
| -import ( |
| - "bufio" |
| - "flag" |
| - "fmt" |
| - "io/ioutil" |
| - "mojom/mojom_parser/mojom" |
| - "mojom/mojom_parser/parser" |
| - "mojom/mojom_parser/serialization" |
| - "os" |
| - "path/filepath" |
| - "strings" |
| -) |
| - |
| -// DirectoryList holds the result of parsing a command-line flag |
| -// that accepts a comma-separated list of directory paths. This |
| -// type satisfies the flag.Value interface. |
| -type DirectoryList []string |
| - |
| -func (dl *DirectoryList) String() string { |
| - return fmt.Sprintf("%v", *dl) |
| -} |
| - |
| -func (dl *DirectoryList) Set(args string) error { |
| - for _, name := range strings.Split(args, ",") { |
| - info, err := os.Stat(name) |
| - if err != nil { |
| - return err |
| - } |
| - if !info.IsDir() { |
| - return fmt.Errorf("%s is not a directory.", name) |
| - } |
| - *dl = append(*dl, name) |
| - } |
| - return nil |
| -} |
| - |
| -var directoryListFlag DirectoryList |
| - |
| -func init() { |
| - flag.Var(&directoryListFlag, "I", "comma-separated list of directory paths to search for mojom imports") |
| -} |
| - |
| -func main() { |
| - outFile := flag.String("out", "", "The path to the output file. If not present the output will "+ |
| - "be written to standard out.") |
| - debug := flag.Bool("debug", false, "Generate debug data including the parse tree and print it to standard out.") |
| - metaDataOnly := flag.Bool("meta-data-only", false, "Only parse file attributes and 'module' statement, "+ |
| - "not mojom declarations or import statements.") |
| - flag.Parse() |
| - |
| - fileNames := flag.Args() |
| - if len(fileNames) == 0 { |
| - ErrorExit(fmt.Sprintf("No .mojom files given.\n"+ |
| - "Usage: %s [-I <include_dirs>] [-out <out_file>] [-debug] [-meta-data-only] <mojom_file>...", |
| - filepath.Base(os.Args[0]))) |
| - } |
| - |
| - parseDriver := parser.NewDriver(directoryListFlag, *debug, *metaDataOnly) |
| - |
| - // Do the parsing |
| - descriptor, err := parseDriver.ParseFiles(fileNames) |
| - if err != nil { |
| - ErrorExit(fmt.Sprintf("%s", err.Error())) |
| - } else if *debug { |
| - fmt.Println("Parsing complete.") |
| - } |
| - |
| - // Serialize the result. |
| - bytes, debug_string, err := serialization.Serialize(descriptor, *debug) |
| - if err != nil { |
| - ErrorExit(fmt.Sprintf("Serialization error: %s", err)) |
| - } |
| - |
| - // In debug mode print out the debug information. |
| - if *debug { |
| - PrintDebugOutput(debug_string, descriptor) |
| - } |
| - |
| - // Emit the output to a file or standard out. |
| - if len(*outFile) == 0 { |
| - w := bufio.NewWriter(os.Stdout) |
| - if _, err := w.Write(bytes); err != nil { |
| - ErrorExit(fmt.Sprintf("Error writing output to standard out: %s.", *outFile, err.Error())) |
| - } |
| - w.Flush() |
| - } else { |
| - if err := ioutil.WriteFile(*outFile, bytes, os.ModePerm); err != nil { |
| - ErrorExit(fmt.Sprintf("Error writing output to %s: %s.", *outFile, err.Error())) |
| - } else { |
| - if *debug { |
| - fmt.Printf("The output was written to %s.\n", *outFile) |
| - } |
| - } |
| - } |
| -} |
| - |
| -func ErrorExit(message string) { |
| - fmt.Fprintf(os.Stderr, "%s\n", message) |
| - os.Exit(1) |
| -} |
| - |
| -func PrintDebugOutput(debugString string, descriptor *mojom.MojomDescriptor) { |
| - fmt.Println("\n\n=============================================") |
| - fmt.Println("\n Pre-Serialized Go Object:") |
| - fmt.Printf("\n%s\n", descriptor.String()) |
| - fmt.Println("\n\n=============================================") |
| - fmt.Println("\n Debug Serialized Output:") |
| - fmt.Println(debugString) |
| -} |