Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(359)

Unified Diff: mojom/mojom_parser/parser_main.go

Issue 1702873002: Mojom formatter incorporated in the mojom binary. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojom/mojom_parser/parse_cmd.go ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
-
-/*
- 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)
-}
« no previous file with comments | « mojom/mojom_parser/parse_cmd.go ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698