Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
饶先宏
hdl4se
提交
bebefe39
H
hdl4se
项目概览
饶先宏
/
hdl4se
通知
12
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hdl4se
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
bebefe39
编写于
5月 28, 2021
作者:
饶先宏
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
202105280623
上级
302d5622
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
223 addition
and
4 deletion
+223
-4
CMakeLists.txt
CMakeLists.txt
+0
-1
parser/CMakeLists.txt
parser/CMakeLists.txt
+1
-1
parser/verilog_keyword.c
parser/verilog_keyword.c
+37
-1
parser/verilog_keyword.h
parser/verilog_keyword.h
+183
-0
parser/verilog_parser.y
parser/verilog_parser.y
+2
-1
未找到文件。
CMakeLists.txt
浏览文件 @
bebefe39
...
...
@@ -7,7 +7,6 @@ project ("hdl4se")
# 包含子项目。
add_subdirectory
(
"preprocess"
)
add_subdirectory
(
"parser"
)
add_subdirectory
(
"testpreprocess"
)
add_subdirectory
(
"hdl4secell"
)
add_subdirectory
(
"hdl4sesim"
)
...
...
parser/CMakeLists.txt
浏览文件 @
bebefe39
...
...
@@ -15,7 +15,7 @@ add_library (verilog_parser STATIC
"verilog_root.c"
"verilog_root.h"
"verilog_scanner.c"
)
"verilog_keyword.h"
)
include_directories
(
"../../lcom/include"
)
include_directories
(
"../hdl4secell/include"
)
...
...
parser/verilog_keyword.c
浏览文件 @
bebefe39
/*
** HDL4SE: 软件Verilog综合仿真平台
** Copyright (C) 2021-2021, raoxianhong<raoxianhong@163.net>
** LCOM: 轻量级组件对象模型
** Copyright (C) 2021-2021, raoxianhong<raoxianhong@163.net>
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
**
** * Redistributions of source code must retain the above copyright notice,
** this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright notice,
** this list of conditions and the following disclaimer in the documentation
** and/or other materials provided with the distribution.
** * The name of the author may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
** THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "verilog_parser.tab.h"
/*
* verilog_keyword.c
修改记录:
202105280619: rxh, initial version
*/
#include "verilog_keyword.h"
#include "string.h"
#define DEFKEYWORD(id, n) {KW_##id, n}
...
...
parser/verilog_keyword.h
0 → 100644
浏览文件 @
bebefe39
/*
** HDL4SE: 软件Verilog综合仿真平台
** Copyright (C) 2021-2021, raoxianhong<raoxianhong@163.net>
** LCOM: 轻量级组件对象模型
** Copyright (C) 2021-2021, raoxianhong<raoxianhong@163.net>
** All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
**
** * Redistributions of source code must retain the above copyright notice,
** this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright notice,
** this list of conditions and the following disclaimer in the documentation
** and/or other materials provided with the distribution.
** * The name of the author may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
** THE POSSIBILITY OF SUCH DAMAGE.
*/
/*
* verilog_keyword.h
修改记录:
202105280612: rxh, initial version
*/
#ifndef __VERILOG_KEYWORD_H
#define __VERILOG_KEYWORD_H
#ifdef __cplusplus
extern
"C"
{
#endif
#ifndef _ASMLANGUAGE
typedef
enum
verilog_keyword
{
KW_ALWAYS
,
KW_AND
,
KW_ASSIGN
,
KW_AUTOMATIC
,
KW_BEGIN
,
KW_BUF
,
KW_BUFIF0
,
KW_BUFIF1
,
KW_CASE
,
KW_CASEX
,
KW_CASEZ
,
KW_CELL
,
KW_CMOS
,
KW_CONFIG
,
KW_DEASSIGN
,
KW_DEFAULT
,
KW_DEFPARAM
,
KW_DESIGN
,
KW_DISABLE
,
KW_EDGE
,
KW_ELSE
,
KW_END
,
KW_ENDCASE
,
KW_ENDCONFIG
,
KW_ENDFUNCTION
,
KW_ENDGENERATE
,
KW_ENDMODULE
,
KW_ENDPRIMITIVE
,
KW_ENDSPECIFY
,
KW_ENDTABLE
,
KW_ENDTASK
,
KW_EVENT
,
KW_FOR
,
KW_FORCE
,
KW_FOREVER
,
KW_FORK
,
KW_FUNCTION
,
KW_GENERATE
,
KW_GENVAR
,
KW_HIGHZ0
,
KW_HIGHZ1
,
KW_IF
,
KW_IFNONE
,
KW_INCDIR
,
KW_INCLUDE
,
KW_INITIAL
,
KW_INOUT
,
KW_INPUT
,
KW_INSTANCE
,
KW_INTEGER
,
KW_JOIN
,
KW_LARGE
,
KW_LIBLIST
,
KW_LIBRARY
,
KW_LOCALPARAM
,
KW_MACROMODULE
,
KW_MEDIUM
,
KW_MODULE
,
KW_NAN
,
KW_NEGEDGE
,
KW_NMOS
,
KW_NOR
,
KW_NOSHOWCANCELLED
,
KW_NOT
,
KW_NOTIF0
,
KW_NOTIF1
,
KW_OR
,
KW_OUTPUT
,
KW_PARAMETER
,
KW_PATHPULSE
,
KW_PMOS
,
KW_POSEDGE
,
KW_PRIMITIVE
,
KW_PULL0
,
KW_PULL1
,
KW_PULLDOWN
,
KW_PULLUP
,
KW_PULSESTYLE_ONEVENT
,
KW_PULSESTYLE_ONDETECT
,
KW_RCMOS
,
KW_REAL
,
KW_REALTIME
,
KW_REG
,
KW_RELEASE
,
KW_REPEAT
,
KW_RNMOS
,
KW_RPMOS
,
KW_RTRAN
,
KW_RTRANIF0
,
KW_RTRANIF1
,
KW_SCALARED
,
KW_SHOWCANCELLED
,
KW_SIGNED
,
KW_SMALL
,
KW_SPECIFY
,
KW_SPECPARAM
,
KW_STRONG0
,
KW_STRONG1
,
KW_SUPPLY0
,
KW_SUPPLY1
,
KW_TABLE
,
KW_TASK
,
KW_TIME
,
KW_TRAN
,
KW_TRANIF0
,
KW_TRANIF1
,
KW_TRI
,
KW_TRI0
,
KW_TRI1
,
KW_TRIAND
,
KW_TRIOR
,
KW_TRIREG
,
KW_UNSIGNED
,
KW_USE
,
KW_VECTORED
,
KW_WAIT
,
KW_WAND
,
KW_WEAK0
,
KW_WEAK1
,
KW_WHILE
,
KW_WIRE
,
KW_WOR
,
KW_XNOR
,
KW_XOR
,
KW_NAND
,
}
verilog_keyword_t
;
#endif
int
verilog_find_keyword_word
(
const
char
*
ident
);
#ifdef __cplusplus
}
#endif
#endif
parser/verilog_parser.y
浏览文件 @
bebefe39
...
...
@@ -36,6 +36,7 @@
HOBJECT treenode;
char * string;
int token;
int keyword;
int operator;
IDListVar list;
}
...
...
@@ -79,7 +80,7 @@
%token <string> MACRO_TEXT MACRO_IDENTIFIER
%token <
token
> KW_ALWAYS KW_AND KW_ASSIGN KW_AUTOMATIC KW_BEGIN KW_BUF KW_BUFIF0 KW_BUFIF1 KW_CASE KW_CASEX
%token <
keyword
> KW_ALWAYS KW_AND KW_ASSIGN KW_AUTOMATIC KW_BEGIN KW_BUF KW_BUFIF0 KW_BUFIF1 KW_CASE KW_CASEX
KW_CASEZ KW_CELL KW_CMOS KW_CONFIG KW_DEASSIGN KW_DEFAULT KW_DEFPARAM KW_DESIGN KW_DISABLE
KW_EDGE KW_ELSE KW_END KW_ENDCASE KW_ENDCONFIG KW_ENDFUNCTION KW_ENDGENERATE KW_ENDMODULE
KW_ENDPRIMITIVE KW_ENDSPECIFY KW_ENDTABLE KW_ENDTASK KW_EVENT KW_FOR KW_FORCE KW_FOREVER KW_FORK
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录