Giter Site home page Giter Site logo

antlr-cmake-starter's People

Contributors

arthursonzogni avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

antlr-cmake-starter's Issues

Parser and Lexer in one flle

Is possible add these handling ?
My trial of change original function:

# Function
#   ANTLRone(INPUT <input>)
#
# Description:
#   Take an ANTLR file and produce a CMake rule to generate the corresponding
#   C++ files.
#
# Notes:
#   The ANTLR file path must be relative to ${CMAKE_CURRENT_SOURCE_DIR}
#   Parser and lexer in one file.
#
# Example:
#   ANTLRone(My1.g4)
function(ANTLRone)
  set(source ${ARGN})
  get_filename_component(source_filename ${CMAKE_CURRENT_SOURCE_DIR}/${source} NAME_WE)
  get_filename_component(source_src_dir  ${CMAKE_CURRENT_SOURCE_DIR}/${source} DIRECTORY)
  get_filename_component(source_gen_dir  ${CMAKE_CURRENT_BINARY_DIR}/${source} DIRECTORY)
  add_custom_command(
          DEPENDS
          ${source_src_dir}/${source_filename}.g4
          OUTPUT
          ${source_gen_dir}/${source_filename}Lexer.h
          ${source_gen_dir}/${source_filename}Lexer.cpp
          ${source_gen_dir}/${source_filename}Parser.h
          ${source_gen_dir}/${source_filename}Parser.cpp
          ${source_gen_dir}/${source_filename}.interp
          ${source_gen_dir}/${source_filename}.tokens
          COMMAND
          java
          ARGS
          -jar ${CMAKE_SOURCE_DIR}/tools/antlr/antlr.jar
          -Dlanguage=Cpp
          -no-listener
          -no-visitor
          -o ${source_gen_dir}
          ${source_src_dir}/${source_filename}.g4
  )
  set(output ${source_gen_dir}/${source_filename}Parser.cpp ${source_gen_dir}/${source_filename}Lexer.cpp)
endfunction()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.