mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-28 17:20:22 +00:00
Add recognition and classification of WebAssembly (#3650)
This commit is contained in:
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -851,3 +851,6 @@
|
||||
[submodule "vendor/grammars/language-closure-templates"]
|
||||
path = vendor/grammars/language-closure-templates
|
||||
url = https://github.com/mthadley/language-closure-templates
|
||||
[submodule "vendor/grammars/language-webassembly"]
|
||||
path = vendor/grammars/language-webassembly
|
||||
url = https://github.com/Alhadis/language-webassembly
|
||||
|
||||
@@ -462,6 +462,8 @@ vendor/grammars/language-viml:
|
||||
vendor/grammars/language-wavefront:
|
||||
- source.wavefront.mtl
|
||||
- source.wavefront.obj
|
||||
vendor/grammars/language-webassembly:
|
||||
- source.webassembly
|
||||
vendor/grammars/language-xbase:
|
||||
- source.harbour
|
||||
vendor/grammars/language-xcompose:
|
||||
|
||||
@@ -2469,6 +2469,7 @@ Makefile:
|
||||
- Makefile.frag
|
||||
- Makefile.in
|
||||
- Makefile.inc
|
||||
- Makefile.wat
|
||||
- makefile
|
||||
- makefile.sco
|
||||
- mkfile
|
||||
@@ -4693,6 +4694,20 @@ Web Ontology Language:
|
||||
tm_scope: text.xml
|
||||
ace_mode: xml
|
||||
language_id: 394
|
||||
WebAssembly:
|
||||
type: programming
|
||||
color: "#04133b"
|
||||
extensions:
|
||||
- ".wast"
|
||||
- ".wat"
|
||||
aliases:
|
||||
- wast
|
||||
- wasm
|
||||
tm_scope: source.webassembly
|
||||
ace_mode: lisp
|
||||
codemirror_mode: commonlisp
|
||||
codemirror_mime_type: text/x-common-lisp
|
||||
language_id: 956556503
|
||||
WebIDL:
|
||||
type: programming
|
||||
extensions:
|
||||
|
||||
248
samples/Makefile/filenames/Makefile.wat
Normal file
248
samples/Makefile/filenames/Makefile.wat
Normal file
@@ -0,0 +1,248 @@
|
||||
#
|
||||
# The FreeType Project LICENSE
|
||||
# ----------------------------
|
||||
#
|
||||
# Copyright 1996-1999 by
|
||||
# David Turner, Robert Wilhelm, and Werner Lemberg
|
||||
#
|
||||
#
|
||||
#
|
||||
# Introduction
|
||||
# ============
|
||||
#
|
||||
# The FreeType Project is distributed in several archive packages;
|
||||
# some of them may contain, in addition to the FreeType font engine,
|
||||
# various tools and contributions which rely on, or relate to, the
|
||||
# FreeType Project.
|
||||
#
|
||||
# This license applies to all files found in such packages, and
|
||||
# which do not fall under their own explicit license. The license
|
||||
# affects thus the FreeType font engine, the test programs,
|
||||
# documentation and makefiles, at the very least.
|
||||
#
|
||||
# This license was inspired by the BSD, Artistic, and IJG
|
||||
# (Independent JPEG Group) licenses, which all encourage inclusion
|
||||
# and use of free software in commercial and freeware products
|
||||
# alike. As a consequence, its main points are that:
|
||||
#
|
||||
# o We don't promise that this software works. However, we are be
|
||||
# interested in any kind of bug reports. (`as is' distribution)
|
||||
#
|
||||
# o You can use this software for whatever you want, in parts or
|
||||
# full form, without having to pay us. (`royalty-free' usage)
|
||||
#
|
||||
# o You may not pretend that you wrote this software. If you use
|
||||
# it, or only parts of it, in a program, you must acknowledge
|
||||
# somewhere in your documentation that you've used the FreeType
|
||||
# code. (`credits')
|
||||
#
|
||||
# We specifically permit and encourage the inclusion of this
|
||||
# software, with or without modifications, in commercial products,
|
||||
# provided that all warranty or liability claims are assumed by the
|
||||
# product vendor.
|
||||
#
|
||||
#
|
||||
# Legal Terms
|
||||
# ===========
|
||||
#
|
||||
# 0. Definitions
|
||||
# --------------
|
||||
#
|
||||
# Throughout this license, the terms `package', `FreeType Project',
|
||||
# and `FreeType archive' refer to the set of files originally
|
||||
# distributed by the authors (David Turner, Robert Wilhelm, and
|
||||
# Werner Lemberg) as the `FreeType project', be they named as alpha,
|
||||
# beta or final release.
|
||||
#
|
||||
# `You' refers to the licensee, or person using the project, where
|
||||
# `using' is a generic term including compiling the project's source
|
||||
# code as well as linking it to form a `program' or `executable'.
|
||||
# This program is referred to as `a program using the FreeType
|
||||
# engine'.
|
||||
#
|
||||
# This license applies to all files distributed in the original
|
||||
# FreeType archive, including all source code, binaries and
|
||||
# documentation, unless otherwise stated in the file in its
|
||||
# original, unmodified form as distributed in the original archive.
|
||||
# If you are unsure whether or not a particular file is covered by
|
||||
# this license, you must contact us to verify this.
|
||||
#
|
||||
# The FreeType project is copyright (C) 1996-1999 by David Turner,
|
||||
# Robert Wilhelm, and Werner Lemberg. All rights reserved except as
|
||||
# specified below.
|
||||
#
|
||||
# 1. No Warranty
|
||||
# --------------
|
||||
#
|
||||
# THE FREETYPE ARCHIVE IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY
|
||||
# KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
# PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
# BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO
|
||||
# USE, OF THE FREETYPE PROJECT.
|
||||
#
|
||||
# As you have not signed this license, you are not required to
|
||||
# accept it. However, as the FreeType project is copyrighted
|
||||
# material, only this license, or another one contracted with the
|
||||
# authors, grants you the right to use, distribute, and modify it.
|
||||
# Therefore, by using, distributing, or modifying the FreeType
|
||||
# project, you indicate that you understand and accept all the terms
|
||||
# of this license.
|
||||
#
|
||||
# 2. Redistribution
|
||||
# -----------------
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# o Redistribution of source code must retain this license file
|
||||
# (`licence.txt') unaltered; any additions, deletions or changes
|
||||
# to the original files must be clearly indicated in
|
||||
# accompanying documentation. The copyright notices of the
|
||||
# unaltered, original files must be preserved in all copies of
|
||||
# source files.
|
||||
#
|
||||
# o Redistribution in binary form must provide a disclaimer that
|
||||
# states that the software is based in part of the work of the
|
||||
# FreeType Team, in the distribution documentation. We also
|
||||
# encourage you to put an URL to the FreeType web page in your
|
||||
# documentation, though this isn't mandatory.
|
||||
#
|
||||
# These conditions apply to any software derived from or based on
|
||||
# the FreeType code, not just the unmodified files. If you use our
|
||||
# work, you must acknowledge us. However, no fee need be paid to
|
||||
# us.
|
||||
#
|
||||
# 3. Advertising
|
||||
# --------------
|
||||
#
|
||||
# The names of FreeType's authors and contributors may not be used
|
||||
# to endorse or promote products derived from this software without
|
||||
# specific prior written permission.
|
||||
#
|
||||
# We suggest, but do not require, that you use one or more of the
|
||||
# following phrases to refer to this software in your documentation
|
||||
# or advertising materials: `FreeType Project', `FreeType Engine',
|
||||
# `FreeType library', or `FreeType Distribution'.
|
||||
#
|
||||
# 4. Contacts
|
||||
# -----------
|
||||
#
|
||||
# There are two mailing lists related to FreeType:
|
||||
#
|
||||
# o freetype@freetype.org
|
||||
#
|
||||
# Discusses general use and applications of FreeType, as well as
|
||||
# future and wanted additions to the library and distribution.
|
||||
# If you are looking for support, start in this list if you
|
||||
# haven't found anything to help you in the documentation.
|
||||
#
|
||||
# o devel@freetype.org
|
||||
#
|
||||
# Discusses bugs, as well as engine internals, design issues,
|
||||
# specific licenses, porting, etc.
|
||||
#
|
||||
# o http://www.freetype.org
|
||||
#
|
||||
# Holds the current FreeType web page, which will allow you to
|
||||
# download our latest development version and read online
|
||||
# documentation.
|
||||
#
|
||||
# You can also contact us individually at:
|
||||
#
|
||||
# David Turner <david.turner@freetype.org>
|
||||
# Robert Wilhelm <robert.wilhelm@freetype.org>
|
||||
# Werner Lemberg <werner.lemberg@freetype.org>
|
||||
#
|
||||
#
|
||||
# --- end of license ---
|
||||
#
|
||||
# This file is part of the FreeType project.
|
||||
#
|
||||
# This builds the Watcom library with Watcom's wcc386 under OS/2.
|
||||
#
|
||||
# You'll need Watcom's wmake.
|
||||
#
|
||||
#
|
||||
# Invoke by "wmake -f arch\os2\Makefile.wat" when in the "lib" directory
|
||||
#
|
||||
# This will build "freetype\lib\libttf.lib"
|
||||
|
||||
ARCH = arch\os2
|
||||
FT_MAKEFILE = $(ARCH)\Makefile.wat
|
||||
FT_MAKE = wmake -h
|
||||
|
||||
|
||||
.EXTENSIONS:
|
||||
.EXTENSIONS: .lib .obj .c .h
|
||||
.obj:.;.\extend;.\$(ARCH)
|
||||
.c:.;.\extend;.\$(ARCH)
|
||||
.h:.;.\extend;.\$(ARCH)
|
||||
|
||||
CC = wcc386
|
||||
|
||||
CCFLAGS = /otexanl+ /s /w5 /zq -Iarch\os2 -I. -Iextend
|
||||
|
||||
TTFILE = .\ttfile.c
|
||||
TTMEMORY = .\ttmemory.c
|
||||
TTMUTEX = .\ttmutex.c
|
||||
|
||||
TTFILE_OBJ = ttfile.obj
|
||||
TTMEMORY_OBJ = ttmemory.obj
|
||||
TTMUTEX_OBJ = ttmutex.obj
|
||||
|
||||
PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX)
|
||||
PORT_OBJS = $(TTFILE_OBJ) $(TTMEMORY_OBJ) $(TTMUTEX_OBJ)
|
||||
|
||||
SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c &
|
||||
extend\ftxcmap.c extend\ftxwidth.c extend\ftxsbit.c &
|
||||
extend\ftxgsub.c extend\ftxgpos.c extend\ftxopen.c &
|
||||
extend\ftxgdef.c
|
||||
|
||||
OBJS_X = extend\ftxgasp.obj extend\ftxkern.obj extend\ftxpost.obj &
|
||||
extend\ftxcmap.obj extend\ftxwidth.obj extend\ftxsbit.obj &
|
||||
extend\ftxgsub.obj extend\ftxgpos.obj extend\ftxopen.obj &
|
||||
extend\ftxgdef.obj
|
||||
|
||||
SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c &
|
||||
ttgload.c ttinterp.c ttload.c ttobjs.c &
|
||||
ttraster.c ttextend.c $(PORT)
|
||||
|
||||
OBJS_M = ttapi.obj ttcache.obj ttcalc.obj ttcmap.obj &
|
||||
ttgload.obj ttinterp.obj ttload.obj ttobjs.obj &
|
||||
ttraster.obj ttextend.obj $(PORT_OBJS) $(OBJS_X)
|
||||
|
||||
SRC_S = freetype.c
|
||||
OBJ_S = freetype.obj
|
||||
OBJS_S = $(OBJ_S) $(OBJS_X)
|
||||
|
||||
|
||||
.c.obj:
|
||||
$(CC) $(CCFLAGS) $[* /fo=$[*.obj
|
||||
|
||||
all: .symbolic
|
||||
$(FT_MAKE) -f $(FT_MAKEFILE) libttf.lib
|
||||
|
||||
debug: .symbolic
|
||||
$(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJS_M)" libttf.lib
|
||||
|
||||
|
||||
libttf.lib: $(OBJS_M)
|
||||
wlib -q -n libttf.lib $(OBJS_M)
|
||||
|
||||
# is this correct? Know nothing about wmake and the Watcom compiler...
|
||||
$(OBJ_S): $(SRC_S) $(SRC_M)
|
||||
$(CC) $(CCFLAGS) $(SRC_S) /fo=$(OBJ_S)
|
||||
|
||||
clean: .symbolic
|
||||
@-erase $(OBJS_M)
|
||||
@-erase *.err
|
||||
|
||||
distclean: .symbolic clean
|
||||
@-erase libttf.lib
|
||||
|
||||
new: .symbolic
|
||||
@-wtouch *.c
|
||||
|
||||
# end of Makefile.wat
|
||||
14
samples/WebAssembly/add.wat
Normal file
14
samples/WebAssembly/add.wat
Normal file
@@ -0,0 +1,14 @@
|
||||
(module
|
||||
(import "env" "printInt" (func $printInt (param i32)))
|
||||
(func $add (param $lhs i32) (param $rhs i32) (result i32)
|
||||
get_local $lhs
|
||||
get_local $rhs
|
||||
i32.add
|
||||
)
|
||||
|
||||
(func $main
|
||||
(call $printInt
|
||||
(call $add (i32.const 9) (i32.const 8))))
|
||||
|
||||
(export "main" (func $main))
|
||||
)
|
||||
41
samples/WebAssembly/fibonacci.wat
Normal file
41
samples/WebAssembly/fibonacci.wat
Normal file
@@ -0,0 +1,41 @@
|
||||
(module
|
||||
(import "env" "printInt" (func $printInt (param i32)))
|
||||
(import "env" "print" (func $print (param i32 i32)))
|
||||
|
||||
(memory $memory 1)
|
||||
(data (i32.const 0) "\n")
|
||||
(data (i32.const 1) " ")
|
||||
|
||||
(func $endl
|
||||
(call $print (i32.const 0) (i32.const 1)))
|
||||
(func $space
|
||||
(call $print (i32.const 1) (i32.const 1)))
|
||||
|
||||
(func $fibonacci_rec (param $a i32) (param $b i32) (param $n i32) (result i32)
|
||||
(if (i32.eqz (get_local $n)) (return (get_local $a)))
|
||||
(call $printInt (get_local $b))
|
||||
(call $space)
|
||||
(set_local $a (i32.add (get_local $a) (get_local $b)))
|
||||
(call $fibonacci_rec (get_local $b) (get_local $a) (i32.sub (get_local $n) (i32.const 1)))
|
||||
)
|
||||
|
||||
(func $fibonacci_iter (param $a i32) (param $b i32) (param $n i32) (result i32)
|
||||
(loop $fi
|
||||
(if (i32.eqz (get_local $n)) (return (get_local $a)))
|
||||
(call $printInt (get_local $b))
|
||||
(call $space)
|
||||
(set_local $b (i32.add (get_local $a) (get_local $b)))
|
||||
(set_local $a (i32.sub (get_local $b) (get_local $a)))
|
||||
(set_local $n (i32.sub (get_local $n) (i32.const 1)))
|
||||
(br $fi))
|
||||
(get_local $b))
|
||||
|
||||
(func $main
|
||||
(drop (call $fibonacci_rec (i32.const 0) (i32.const 1) (i32.const 9)))
|
||||
(call $endl)
|
||||
(drop (call $fibonacci_iter (i32.const 0) (i32.const 1) (i32.const 9))))
|
||||
|
||||
(export "main" (func $main))
|
||||
(export "memory" (memory $memory))
|
||||
)
|
||||
|
||||
48
samples/WebAssembly/imported-min.wast
Normal file
48
samples/WebAssembly/imported-min.wast
Normal file
@@ -0,0 +1,48 @@
|
||||
(module
|
||||
(memory 256 256)
|
||||
(data (i32.const 10) "waka waka waka waka waka")
|
||||
;; stack imports are special
|
||||
(import "env" "STACKTOP" (global $STACKTOP$asm2wasm$import i32))
|
||||
(import "env" "STACK_MAX" (global $STACK_MAX$asm2wasm$import i32))
|
||||
;; other imports must not be touched!
|
||||
(import "env" "tempDoublePtr" (global $tempDoublePtr i32))
|
||||
(export "test1" $test1)
|
||||
(export "test2" $test2)
|
||||
(export "test3" $test3)
|
||||
;; ok to modify a global, if we keep it the same value
|
||||
(global $mine (mut i32) (i32.const 1))
|
||||
;; stack imports are ok to use. their uses are the same as other
|
||||
;; globals - must keep the same value (which means, unwind the stack)
|
||||
;; here the global names are "minified"
|
||||
(global $global0 (mut i32) (get_global $STACKTOP$asm2wasm$import))
|
||||
(global $global1 (mut i32) (get_global $STACK_MAX$asm2wasm$import))
|
||||
;; a global initialized by an import, so bad, but ok if not used
|
||||
(global $do-not-use (mut i32) (get_global $tempDoublePtr))
|
||||
(func $test1
|
||||
(local $temp i32)
|
||||
(set_global $mine (i32.const 1))
|
||||
(set_local $temp (get_global $global0))
|
||||
(set_global $global0 (i32.const 1337)) ;; bad
|
||||
(set_global $global0 (get_local $temp)) ;; save us
|
||||
(set_global $global1 (i32.const 913370)) ;; bad
|
||||
(set_global $global1 (get_local $temp)) ;; save us
|
||||
;; use the stack memory
|
||||
(i32.store (get_local $temp) (i32.const 1337))
|
||||
(if
|
||||
(i32.ne
|
||||
(i32.load (get_local $temp))
|
||||
(i32.const 1337)
|
||||
)
|
||||
(unreachable) ;; they should be equal, never get here
|
||||
)
|
||||
;; finally, do a valid store
|
||||
(i32.store8 (i32.const 12) (i32.const 115))
|
||||
)
|
||||
(func $test2
|
||||
(set_global $tempDoublePtr (i32.const 1)) ;; bad!
|
||||
(i32.store8 (i32.const 13) (i32.const 115))
|
||||
)
|
||||
(func $test3
|
||||
(i32.store8 (i32.const 14) (i32.const 115))
|
||||
)
|
||||
)
|
||||
164
samples/WebAssembly/local-cse.wast
Normal file
164
samples/WebAssembly/local-cse.wast
Normal file
@@ -0,0 +1,164 @@
|
||||
(module
|
||||
(memory 100 100)
|
||||
(func $basics
|
||||
(local $x i32)
|
||||
(local $y i32)
|
||||
(drop
|
||||
(i32.add (i32.const 1) (i32.const 2))
|
||||
)
|
||||
(drop
|
||||
(i32.add (i32.const 1) (i32.const 2))
|
||||
)
|
||||
(if (i32.const 0) (nop))
|
||||
(drop ;; we can't do this yet, non-linear
|
||||
(i32.add (i32.const 1) (i32.const 2))
|
||||
)
|
||||
(drop
|
||||
(i32.add (get_local $x) (get_local $y))
|
||||
)
|
||||
(drop
|
||||
(i32.add (get_local $x) (get_local $y))
|
||||
)
|
||||
(drop
|
||||
(i32.add (get_local $x) (get_local $y))
|
||||
)
|
||||
(call $basics) ;; side effects, but no matter for our locals
|
||||
(drop
|
||||
(i32.add (get_local $x) (get_local $y))
|
||||
)
|
||||
(set_local $x (i32.const 100))
|
||||
(drop ;; x was changed!
|
||||
(i32.add (get_local $x) (get_local $y))
|
||||
)
|
||||
)
|
||||
(func $recursive1
|
||||
(local $x i32)
|
||||
(local $y i32)
|
||||
(drop
|
||||
(i32.add
|
||||
(i32.const 1)
|
||||
(i32.add
|
||||
(i32.const 2)
|
||||
(i32.const 3)
|
||||
)
|
||||
)
|
||||
)
|
||||
(drop
|
||||
(i32.add
|
||||
(i32.const 1)
|
||||
(i32.add
|
||||
(i32.const 2)
|
||||
(i32.const 3)
|
||||
)
|
||||
)
|
||||
)
|
||||
(drop
|
||||
(i32.add
|
||||
(i32.const 2)
|
||||
(i32.const 3)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $recursive2
|
||||
(local $x i32)
|
||||
(local $y i32)
|
||||
(drop
|
||||
(i32.add
|
||||
(i32.const 1)
|
||||
(i32.add
|
||||
(i32.const 2)
|
||||
(i32.const 3)
|
||||
)
|
||||
)
|
||||
)
|
||||
(drop
|
||||
(i32.add
|
||||
(i32.const 2)
|
||||
(i32.const 3)
|
||||
)
|
||||
)
|
||||
(drop
|
||||
(i32.add
|
||||
(i32.const 1)
|
||||
(i32.add
|
||||
(i32.const 2)
|
||||
(i32.const 3)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $self
|
||||
(local $x i32)
|
||||
(local $y i32)
|
||||
(drop
|
||||
(i32.add
|
||||
(i32.add
|
||||
(i32.const 2)
|
||||
(i32.const 3)
|
||||
)
|
||||
(i32.add
|
||||
(i32.const 2)
|
||||
(i32.const 3)
|
||||
)
|
||||
)
|
||||
)
|
||||
(drop
|
||||
(i32.add
|
||||
(i32.const 2)
|
||||
(i32.const 3)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $loads
|
||||
(drop
|
||||
(i32.load (i32.const 10))
|
||||
)
|
||||
(drop
|
||||
(i32.load (i32.const 10)) ;; implicit traps, sad
|
||||
)
|
||||
)
|
||||
(func $8 (param $var$0 i32) (result i32)
|
||||
(local $var$1 i32)
|
||||
(local $var$2 i32)
|
||||
(local $var$3 i32)
|
||||
(block $label$0 i32
|
||||
(i32.store
|
||||
(tee_local $var$2
|
||||
(i32.add
|
||||
(get_local $var$1)
|
||||
(i32.const 4)
|
||||
)
|
||||
)
|
||||
(i32.and
|
||||
(i32.load
|
||||
(get_local $var$2)
|
||||
)
|
||||
(i32.xor
|
||||
(tee_local $var$2
|
||||
(i32.const 74)
|
||||
)
|
||||
(i32.const -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(i32.store
|
||||
(tee_local $var$1
|
||||
(i32.add
|
||||
(get_local $var$1)
|
||||
(i32.const 4)
|
||||
)
|
||||
)
|
||||
(i32.or
|
||||
(i32.load
|
||||
(get_local $var$1)
|
||||
)
|
||||
(i32.and
|
||||
(get_local $var$2)
|
||||
(i32.const 8)
|
||||
)
|
||||
)
|
||||
)
|
||||
(i32.const 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
23
samples/WebAssembly/print.wat
Normal file
23
samples/WebAssembly/print.wat
Normal file
@@ -0,0 +1,23 @@
|
||||
(module
|
||||
(import "env" "printInt" (func $printInt (param i32)))
|
||||
(import "env" "printFloat" (func $printFloat (param f32)))
|
||||
(import "env" "print" (func $print (param i32 i32)))
|
||||
|
||||
(memory $memory 1)
|
||||
(data (i32.const 0) "\n")
|
||||
(data (i32.const 1) "Hello World!")
|
||||
|
||||
(func $endl
|
||||
(call $print (i32.const 0) (i32.const 1)))
|
||||
|
||||
(func $main
|
||||
(call $printInt (i32.const 9))
|
||||
(call $endl)
|
||||
(call $printFloat (f32.const 6.28))
|
||||
(call $endl)
|
||||
(call $print (i32.const 1) (i32.const 12))
|
||||
)
|
||||
|
||||
(export "main" (func $main))
|
||||
(export "memory" (memory $memory))
|
||||
)
|
||||
@@ -0,0 +1,81 @@
|
||||
(module
|
||||
(memory 256 256)
|
||||
(type $0 (func (param i32)))
|
||||
(type $1 (func))
|
||||
(type $2 (func (result i32)))
|
||||
(func $b14 (type $2)
|
||||
(drop
|
||||
(if i32 ;; with shrinking, this can become a select
|
||||
(i32.const 1)
|
||||
(block $block1 i32
|
||||
(i32.const 12)
|
||||
)
|
||||
(block $block3 i32
|
||||
(i32.const 27)
|
||||
)
|
||||
)
|
||||
)
|
||||
(drop
|
||||
(if i32
|
||||
(i32.const 1)
|
||||
(i32.load (i32.const 10)) ;; load may have side effects, unless ignored
|
||||
(i32.const 27)
|
||||
)
|
||||
)
|
||||
(drop
|
||||
(if i32
|
||||
(i32.const 1)
|
||||
(i32.rem_s (i32.const 11) (i32.const 12)) ;; rem may have side effects, unless ignored
|
||||
(i32.const 27)
|
||||
)
|
||||
)
|
||||
(drop
|
||||
(if i32
|
||||
(i32.const 1)
|
||||
(i32.trunc_u/f64 (f64.const 12.34)) ;; float to int may have side effects, unless ignored
|
||||
(i32.const 27)
|
||||
)
|
||||
)
|
||||
(i32.const 0)
|
||||
)
|
||||
(func $join-br_ifs
|
||||
(block $out
|
||||
(br_if $out (i32.const 1))
|
||||
(br_if $out (i32.const 2))
|
||||
(br_if $out (i32.const 3))
|
||||
)
|
||||
(block $out2
|
||||
(block $out3
|
||||
(br_if $out2 (i32.const 1))
|
||||
(br_if $out3 (i32.const 2))
|
||||
(br_if $out2 (i32.const 3))
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(block $out4
|
||||
(block $out5
|
||||
(br_if $out4 (i32.const 1))
|
||||
(br_if $out5 (i32.const 2))
|
||||
(br_if $out5 (i32.const 3))
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(block $out6
|
||||
(block $out7
|
||||
(br_if $out6 (i32.const 1))
|
||||
(br_if $out6 (i32.const 2))
|
||||
(br_if $out7 (i32.const 3))
|
||||
)
|
||||
(unreachable)
|
||||
)
|
||||
(block $out8
|
||||
(br_if $out8 (call $b14)) ;; side effect
|
||||
(br_if $out8 (i32.const 0))
|
||||
)
|
||||
(block $out8
|
||||
(br_if $out8 (i32.const 1))
|
||||
(br_if $out8 (call $b14)) ;; side effect
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
1
vendor/README.md
vendored
1
vendor/README.md
vendored
@@ -370,6 +370,7 @@ This is a list of grammars that Linguist selects to provide syntax highlighting
|
||||
- **Wavefront Material:** [Alhadis/language-wavefront](https://github.com/Alhadis/language-wavefront)
|
||||
- **Wavefront Object:** [Alhadis/language-wavefront](https://github.com/Alhadis/language-wavefront)
|
||||
- **Web Ontology Language:** [textmate/xml.tmbundle](https://github.com/textmate/xml.tmbundle)
|
||||
- **WebAssembly:** [Alhadis/language-webassembly](https://github.com/Alhadis/language-webassembly)
|
||||
- **WebIDL:** [andik/IDL-Syntax](https://github.com/andik/IDL-Syntax)
|
||||
- **wisp:** [atom/language-clojure](https://github.com/atom/language-clojure)
|
||||
- **World of Warcraft Addon Data:** [nebularg/language-toc-wow](https://github.com/nebularg/language-toc-wow)
|
||||
|
||||
1
vendor/grammars/language-webassembly
vendored
Submodule
1
vendor/grammars/language-webassembly
vendored
Submodule
Submodule vendor/grammars/language-webassembly added at 47874fed72
18
vendor/licenses/grammar/language-webassembly.txt
vendored
Normal file
18
vendor/licenses/grammar/language-webassembly.txt
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
type: grammar
|
||||
name: language-webassembly
|
||||
license: isc
|
||||
---
|
||||
Copyright (c) 2016-2017, John Gardner
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
Reference in New Issue
Block a user